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();