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

SpacePossum
Contributed by SpacePossum in #19495

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

Jordan Deitch
Contributed by Jordan Deitch in #20029

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.

Published in #Living on the edge