wiki/content/20201116134142-console_cursor_control.md

1.4 KiB

date id title
2020-11-16 2b8781a5-59af-49f7-b761-f4c2619d2d44 Console Cursor Control

Description

Allows cursor to be controlled

Syntax

namespace App\Command;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Cursor;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

class SomeCommand extends Command
{
    protected static $defaultName = 'app:some-command';

    // ...

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        // ...

        $cursor = new Cursor($output);

        // argument for left/right is "number of columns" (1 by default)
        // argument for top/bottom is "number of rows" (1 by default)
        $cursor->moveUp(2)->moveRight();
        $cursor->moveDown();

        // move to an arbitrary (column, row) position
        $cursor->moveToPosition(7, 15);

        // you can show/hide the cursor, save/restore its position, etc.
        $cursor->savePosition()->hide();
    }
}
// clears the entire line where the cursor is at
$cursor->clearLine();

// clears the contents of the current line starting from the cursor position
$cursor->clearLineAfter();

// clears all the output from the cursors' current position to the end of the screen.
$cursor->clearOutput();

// clears the entire screen
$cursor->clearScreen();