Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitfb749b5

Browse files
committed
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 cursorfixes#13529featuresymfony/symfony#27444ping `@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 nottext and image taken from the feature PR descriptioninspired byhttps://symfony.com/doc/current/components/console/helpers/progressbar.htmlCommits-------232c519 [Console] Document console cursor
2 parents7cc8d2a +232c519 commitfb749b5

File tree

6 files changed

+105
-1
lines changed

6 files changed

+105
-1
lines changed

‎_images/components/console/cursor.gif

63.4 KB
Loading

‎components/console/helpers/cursor.rst

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
..index::
2+
single: Console Helpers; Cursor Helper
3+
4+
Cursor Helper
5+
=============
6+
7+
..versionadded::5.1
8+
9+
The:class:`Symfony\\Component\\Console\\Cursor`
10+
class was introduced in Symfony 5.1.
11+
12+
The:class:`Symfony\\Component\\Console\\Cursor` allows you to change the
13+
cursor position in a console command. This allows you to write on any position
14+
of the output:
15+
16+
..image::/_images/components/console/cursor.gif
17+
:align:center
18+
19+
20+
..code-block::php
21+
22+
// src/Commande/MyCommand.php
23+
use Symfony\Component\Console\Command\Command;
24+
use Symfony\Component\Console\Cursor;
25+
use Symfony\Component\Console\Input\InputInterface;
26+
use Symfony\Component\Console\Output\OutputInterface;
27+
28+
class MyCommand extends Command
29+
{
30+
// ...
31+
32+
public function execute(InputInterface $input, OutputInterface $output)
33+
{
34+
// ...
35+
36+
$cursor = new Cursor($output);
37+
38+
// moves the cursor to a specific column and row position
39+
$cursor->moveToPosition(7, 11);
40+
41+
// and write text on this position using the output
42+
$output->write('My text');
43+
44+
// ...
45+
}
46+
}
47+
48+
Using the cursor
49+
----------------
50+
51+
Moving the cursor
52+
.................
53+
54+
There are fews methods to control moving the command cursor::
55+
56+
// moves the cursor 1 line up from its current position
57+
$cursor->moveUp();
58+
59+
// moves the cursor 3 lines up from its current position
60+
$cursor->moveUp(3);
61+
62+
// same for down
63+
$cursor->moveDown();
64+
65+
// moves the cursor 1 column right from its current position
66+
$cursor->moveRight();
67+
68+
// moves the cursor 3 columns right from its current position
69+
$cursor->moveRight(3);
70+
71+
// same for left
72+
$cursor->moveLeft();
73+
74+
// move the cursor to a specific position from its current position
75+
$cursor->moveToPosition(7, 11);
76+
77+
You can get the current command's cursor position by using::
78+
79+
$position = $cursor->getCurrentPosition();
80+
// $position[0] // columns (aka x coordinate)
81+
// $position[1] // rows (aka y coordinate)
82+
83+
Clearing output
84+
...............
85+
86+
The cursor can also clear some output on the screen::
87+
88+
// clears all the output from the current line
89+
$cursor->clearLine();
90+
91+
// clears all the output from the current line after the current position
92+
$cursor->clearLineAfter();
93+
94+
// clears all the output from the cursors' current position to the end of the screen
95+
$cursor->clearOutput();
96+
97+
// clears the entire screen
98+
$cursor->clearScreen();
99+
100+
You also can leverage the:method:`Symfony\\Component\\Console\\Cursor::show`
101+
and:method:`Symfony\\Component\\Console\\Cursor::hide` methods on the cursor.

‎components/console/helpers/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ The Console Helpers
1313
questionhelper
1414
table
1515
debug_formatter
16+
cursor
1617

1718
The Console component comes with some useful helpers. These helpers contain
1819
functions to ease some common tasks.

‎components/console/helpers/map.rst.inc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
* :doc:`/components/console/helpers/questionhelper`
55
* :doc:`/components/console/helpers/table`
66
* :doc:`/components/console/helpers/debug_formatter`
7+
* :doc:`/components/console/helpers/cursor`

‎components/console/helpers/progressbar.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ placeholder before displaying the progress bar::
349349
// 0/100 -- Start
350350

351351
$progressBar->setMessage('Task is in progress...');
352-
$progressBar->advance();
352+
$progressBar->advance();
353353
// 1/100 -- Task is in progress...
354354

355355
Messages can be combined with custom placeholders too. In this example, the

‎console.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,5 +446,6 @@ tools capable of helping you with different tasks:
446446
*:doc:`/components/console/helpers/table`: displays tabular data as a table
447447
*:doc:`/components/console/helpers/debug_formatter`: provides functions to
448448
output debug information when running an external program
449+
*:doc:`/components/console/helpers/cursor`: allows to manipulate the cursor in the terminal
449450

450451
.. _`exit status`:https://en.wikipedia.org/wiki/Exit_status

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp