Skip to content

Commit a09fd7b

Browse files
committed
feature #4485 Added documentation about the DebugFormatter helper (WouterJ)
This PR was merged into the 2.6 branch. Discussion ---------- Added documentation about the DebugFormatter helper | Q | A | --- | --- | Doc fix? | no | New docs? | yes (symfony/symfony#10627) | Applies to | 2.6+ | Fixed tickets | #4256 When may want to add screenshots to the article, but to get this ready quick before 2.6 is released stable, I left them out now. Commits ------- 99f31fc Reordered list of helpers 6a02f68 Applied comments from our great reviewers 363e38f Added documentation about the DebugFormatter helper
2 parents a2ea256 + 99f31fc commit a09fd7b

File tree

3 files changed

+126
-0
lines changed

3 files changed

+126
-0
lines changed
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
.. index::
2+
single: Console Helpers; DebugFormatter Helper
3+
4+
Debug Formatter Helper
5+
======================
6+
7+
.. versionadded:: 2.6
8+
The Debug Formatter helper was introduced in Symfony 2.6.
9+
10+
The :class:`Symfony\\Component\\Console\\Helper\\DebugFormatterHelper` provides
11+
functions to output debug information when running an external program, for
12+
instance a process or HTTP request. It is included in the default helper set
13+
and you can get it by calling
14+
:method:`Symfony\\Component\\Console\\Command\\Command::getHelper`::
15+
16+
$debugFormatter = $this->getHelper('debug_formatter');
17+
18+
The formatter only formats strings, which you can use to output to the console,
19+
but also to log the information or do anything else.
20+
21+
All methods of this helper have an identifier as the first argument. This is a
22+
unique value for each program. This way, the helper can debug information for
23+
multiple programs at the same time. When using the
24+
:doc:`Process component </components/process>`, you probably want to use
25+
:phpfunction:`spl_object_hash`.
26+
27+
.. tip::
28+
29+
This information is often too verbose to be shown by default. You can use
30+
:ref:`verbosity levels <verbosity-levels>` to only show it when in
31+
debugging mode (``-vvv``).
32+
33+
Starting a Program
34+
------------------
35+
36+
As soon as you start a program, you can use
37+
:method:`Symfony\\Component\\Console\\Helper\\DebugFormatterHelper::start` to
38+
display information that the program is started::
39+
40+
// ...
41+
$process = new Process(...);
42+
$process->run();
43+
44+
$output->writeln($debugFormatter->start(spl_object_hash($process), 'Some process description'));
45+
46+
This will output:
47+
48+
.. code-block:: text
49+
50+
RUN Some process description
51+
52+
You can tweak the prefix using the third argument::
53+
54+
$output->writeln($debugFormatter->start(spl_object_hash($process), 'Some process description', 'STARTED');
55+
// will output:
56+
// STARTED Some process description
57+
58+
Output Progress Information
59+
---------------------------
60+
61+
Some programs give output while they are running. This information can be shown
62+
using
63+
:method:`Symfony\\Component\\Console\\Helper\\DebugFormatterHelper::progress`::
64+
65+
use Symfony\Component\Process\Process;
66+
67+
// ...
68+
$process = new Process(...);
69+
70+
$process->run(function ($type, $buffer) use ($output, $debugFormatter, $process) {
71+
$output->writeln(
72+
$debugFormatter->progress(spl_object_hash($process), $buffer, Process::ERR === $type)
73+
);
74+
});
75+
// ...
76+
77+
In case of success, this will output:
78+
79+
.. code-block:: text
80+
81+
OUT The output of the process
82+
83+
And this in case of failure:
84+
85+
.. code-block:: text
86+
87+
ERR The output of the process
88+
89+
The third argument is a boolean which tells the function if the output is error
90+
output or not. When ``true``, the output is considered error output.
91+
92+
The fourth and fifth argument allow you to override the prefix for the normal
93+
output and error output respectively.
94+
95+
Stopping a Program
96+
------------------
97+
98+
When a program is stopped, you can use
99+
:method:`Symfony\\Component\\Console\\Helper\\DebugFormatterHelper::run` to
100+
notify this to the users::
101+
102+
// ...
103+
$output->writeln(
104+
$debugFormatter->stop(
105+
spl_object_hash($process),
106+
'Some command description',
107+
$process->isSuccessfull()
108+
)
109+
);
110+
111+
This will output:
112+
113+
.. code-block:: text
114+
115+
RES Some command description
116+
117+
In case of failure, this will be in red and in case of success it will be green.
118+
119+
Using multiple Programs
120+
-----------------------
121+
122+
As said before, you can also use the helper to display more programs at the
123+
same time. Information about different programs will be shown in different
124+
colors, to make it clear which output belongs to which command.

components/console/helpers/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ The Console Helpers
77
.. toctree::
88
:hidden:
99

10+
debug_formatter
1011
dialoghelper
1112
formatterhelper
1213
processhelper

components/console/helpers/map.rst.inc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@
66
* :doc:`/components/console/helpers/questionhelper`
77
* :doc:`/components/console/helpers/table`
88
* :doc:`/components/console/helpers/tablehelper`
9+
* :doc:`/components/console/helpers/debug_formatter` (new in 2.6)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy