@@ -140,6 +140,9 @@ output. For example::
140140 // white text on a red background
141141 $output->writeln('<error>foo</error>');
142142
143+ The closing tag can be replaced by ``</> ``, which revokes all formatting options
144+ established by the last opened tag.
145+
143146It is possible to define your own styles using the class
144147:class: `Symfony\\ Component\\ Console\\ Formatter\\ OutputFormatterStyle `::
145148
@@ -148,23 +151,27 @@ It is possible to define your own styles using the class
148151 // ...
149152 $style = new OutputFormatterStyle('red', 'yellow', array('bold', 'blink'));
150153 $output->getFormatter()->setStyle('fire', $style);
151- $output->writeln('<fire>foo</fire >');
154+ $output->writeln('<fire>foo</>');
152155
153156Available foreground and background colors are: ``black ``, ``red ``, ``green ``,
154157``yellow ``, ``blue ``, ``magenta ``, ``cyan `` and ``white ``.
155158
156- And available options are: ``bold ``, ``underscore ``, ``blink ``, ``reverse `` and ``conceal ``.
159+ And available options are: ``bold ``, ``underscore ``, ``blink ``, ``reverse ``
160+ (enables the "reverse video" mode where the background and foreground colors
161+ are swapped) and ``conceal `` (sets the foreground color to transparent, making
162+ the typed text invisible - although it can be selected and copied; this option is
163+ commonly used when asking the user to type sensitive information).
157164
158165You can also set these colors and options inside the tagname::
159166
160167 // green text
161- $output->writeln('<fg=green>foo</fg=green >');
168+ $output->writeln('<fg=green>foo</>');
162169
163170 // black text on a cyan background
164- $output->writeln('<fg=black;bg=cyan>foo</fg=black;bg=cyan >');
171+ $output->writeln('<fg=black;bg=cyan>foo</>');
165172
166173 // bold text on a yellow background
167- $output->writeln('<bg=yellow;options=bold>foo</bg=yellow;options=bold >');
174+ $output->writeln('<bg=yellow;options=bold>foo</>');
168175
169176.. _verbosity-levels :
170177
@@ -296,15 +303,15 @@ You can access the ``names`` argument as an array::
296303 $text .= ' '.implode(', ', $names);
297304 }
298305
299- There are3 argument variants you can use:
306+ There arethree argument variants you can use:
300307
301- =========================== ===============================================================================================================
308+ =========================== ===========================================================================================================
302309Mode Value
303- =========================== ===============================================================================================================
304- InputArgument::REQUIRED The argument is required
305- InputArgument::OPTIONAL The argument is optional and therefore can be omitted
306- InputArgument::IS_ARRAY The argument can contain an indefinite number of arguments and must be used at the end of the argument list
307- =========================== ===============================================================================================================
310+ =========================== ===========================================================================================================
311+ `` InputArgument::REQUIRED `` The argument is required
312+ `` InputArgument::OPTIONAL `` The argument is optional and therefore can be omitted
313+ `` InputArgument::IS_ARRAY `` The argument can contain an indefinite number of arguments and must be used at the end of the argument list
314+ =========================== ===========================================================================================================
308315
309316You can combine ``IS_ARRAY `` with ``REQUIRED `` and ``OPTIONAL `` like this::
310317
@@ -377,14 +384,14 @@ will work:
377384
378385 There are 4 option variants you can use:
379386
380- =========================== =====================================================================================
381- Option Value
382- =========================== =====================================================================================
383- InputOption::VALUE_IS_ARRAY This option accepts multiple values (e.g. ``--dir=/foo --dir=/bar ``)
384- InputOption::VALUE_NONE Do not accept input for this option (e.g. ``--yell ``)
385- InputOption::VALUE_REQUIRED This value is required (e.g. ``--iterations=5 ``), the option itself is still optional
386- InputOption::VALUE_OPTIONAL This option may or may not have a value (e.g. ``--yell `` or ``--yell=loud ``)
387- =========================== =====================================================================================
387+ =============================== =====================================================================================
388+ Option Value
389+ =============================== =====================================================================================
390+ `` InputOption::VALUE_IS_ARRAY `` This option accepts multiple values (e.g. ``--dir=/foo --dir=/bar ``)
391+ `` InputOption::VALUE_NONE `` Do not accept input for this option (e.g. ``--yell ``)
392+ `` InputOption::VALUE_REQUIRED `` This value is required (e.g. ``--iterations=5 ``), the option itself is still optional
393+ `` InputOption::VALUE_OPTIONAL `` This option may or may not have a value (e.g. ``--yell `` or ``--yell=loud ``)
394+ =============================== =====================================================================================
388395
389396You can combine ``VALUE_IS_ARRAY `` with ``VALUE_REQUIRED `` or ``VALUE_OPTIONAL `` like this:
390397