Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feature #15270 [Console] Document console cursor (noniagriconomie)
This PR was submitted for the 5.4 branch but it was squashed and merged into the 5.2 branch instead. Discussion ---------- [Console] Document console cursor fixes #13529 feature symfony/symfony#27444 ping `@wouterj` I've seen your slack recently and wanted to give it a try as I will use the feature very soon :) feel free to comment, specialy if I need to document all the cursor features or not text and image taken from the feature PR description inspired by https://symfony.com/doc/current/components/console/helpers/progressbar.html Commits ------- 232c519 [Console] Document console cursor
- Loading branch information
Showing
6 changed files
with
105 additions
and
1 deletion.
There are no files selected for viewing
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
.. index:: | ||
single: Console Helpers; Cursor Helper | ||
|
||
Cursor Helper | ||
============= | ||
|
||
.. versionadded:: 5.1 | ||
|
||
The :class:`Symfony\\Component\\Console\\Cursor` | ||
class was introduced in Symfony 5.1. | ||
|
||
The :class:`Symfony\\Component\\Console\\Cursor` allows you to change the | ||
cursor position in a console command. This allows you to write on any position | ||
of the output: | ||
|
||
.. image:: /_images/components/console/cursor.gif | ||
:align: center | ||
|
||
|
||
.. code-block:: php | ||
// src/Commande/MyCommand.php | ||
use Symfony\Component\Console\Command\Command; | ||
use Symfony\Component\Console\Cursor; | ||
use Symfony\Component\Console\Input\InputInterface; | ||
use Symfony\Component\Console\Output\OutputInterface; | ||
class MyCommand extends Command | ||
{ | ||
// ... | ||
public function execute(InputInterface $input, OutputInterface $output) | ||
{ | ||
// ... | ||
$cursor = new Cursor($output); | ||
// moves the cursor to a specific column and row position | ||
$cursor->moveToPosition(7, 11); | ||
// and write text on this position using the output | ||
$output->write('My text'); | ||
// ... | ||
} | ||
} | ||
Using the cursor | ||
---------------- | ||
|
||
Moving the cursor | ||
................. | ||
|
||
There are fews methods to control moving the command cursor:: | ||
|
||
// moves the cursor 1 line up from its current position | ||
$cursor->moveUp(); | ||
|
||
// moves the cursor 3 lines up from its current position | ||
$cursor->moveUp(3); | ||
|
||
// same for down | ||
$cursor->moveDown(); | ||
|
||
// moves the cursor 1 column right from its current position | ||
$cursor->moveRight(); | ||
|
||
// moves the cursor 3 columns right from its current position | ||
$cursor->moveRight(3); | ||
|
||
// same for left | ||
$cursor->moveLeft(); | ||
|
||
// move the cursor to a specific position from its current position | ||
$cursor->moveToPosition(7, 11); | ||
|
||
You can get the current command's cursor position by using:: | ||
|
||
$position = $cursor->getCurrentPosition(); | ||
// $position[0] // columns (aka x coordinate) | ||
// $position[1] // rows (aka y coordinate) | ||
|
||
Clearing output | ||
............... | ||
|
||
The cursor can also clear some output on the screen:: | ||
|
||
// clears all the output from the current line | ||
$cursor->clearLine(); | ||
|
||
// clears all the output from the current line after the current 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(); | ||
|
||
You also can leverage the :method:`Symfony\\Component\\Console\\Cursor::show` | ||
and :method:`Symfony\\Component\\Console\\Cursor::hide` methods on the cursor. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters