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

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 private commands

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 making them private with the setPublic(false) 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')
            // ...
            ->setPublic(false)
        ;
    }
}

Private commands behave the same as public 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.