Read the part 1 and part 2 of this series of articles explaining the new features of the Console component in Symfony 3.2.
Added support for multiple text style options
The output of the console commands can use any of these text styles to change
its appearance: bold
, underscore
, blink
, reverse
and conceal
.
In Symfony 3.2, you can combine more than one text style for a single content
(for example to display some text bold and underscored):
1
$output->writeln('<fg=green;options=bold,underscore>Test</>');
In any case, remember that Symfony provides a simpler way to apply the same style to your console commands in a consistent way.
Added support for hidden commands
By default Symfony commands are public, so they are always included in the
command listings displayed when running bin/console
or bin/console list
.
In Symfony 3.2, you can remove some commands from those listings hiding them
with the setHidden(true)
method:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
// src/AppBundle/Command/FooCommand.php
namespace AppBundle\Command;
use Symfony\Component\Console\Command\Command;
class FooCommand extends Command
{
protected function configure()
{
$this
->setName('app:foo')
// ...
->setHidden(true)
;
}
}
Hidden commands behave the same as regular commands and they can be executed as before, but they are no longer displayed in command listings, so end-users are not aware of their existence. They are best suited for commands designed for the legacy parts of the application, for commands exclusively executed through scheduled tasks, etc.
Could you give me more examples for private command usage? I'm trying to find relevancy in my projects.
Private commands can be useful when building a CLI application using the standard edition. You might still want to be able to use clear cache and the likes, but don't want them to be displayed to your users.
Wouldn't this effect xml export an therefore IDE autocompletion?
It may be useful
Thanks Loïc, I can imagine better now.