7 * added `SHELL_VERBOSITY` env var to control verbosity
8 * added `CommandLoaderInterface`, `FactoryCommandLoader` and PSR-11
9 `ContainerCommandLoader` for commands lazy-loading
10 * added a case-insensitive command name matching fallback
11 * added static `Command::$defaultName/getDefaultName()`, allowing for
12 commands to be registered at compile time in the application command loader.
13 Setting the `$defaultName` property avoids the need for filling the `command`
14 attribute on the `console.command` tag when using `AddConsoleCommandPass`.
19 * added `ExceptionListener`
20 * added `AddConsoleCommandPass` (originally in FrameworkBundle)
21 * [BC BREAK] `Input::getOption()` no longer returns the default value for options
22 with value optional explicitly passed empty
23 * added console.error event to catch exceptions thrown by other listeners
24 * deprecated console.exception event in favor of console.error
25 * added ability to handle `CommandNotFoundException` through the
27 * deprecated default validation in `SymfonyQuestionHelper::ask`
32 * added `setInputs()` method to CommandTester for ease testing of commands expecting inputs
33 * added `setStream()` and `getStream()` methods to Input (implement StreamableInputInterface)
34 * added StreamableInputInterface
40 * added truncate method to FormatterHelper
41 * added setColumnWidth(s) method to Table
46 * remove readline support from the question helper as it caused issues
51 * use readline for user input in the question helper when available to allow
57 * added a Process helper
58 * added a DebugFormatter helper
63 * deprecated the dialog helper (use the question helper instead)
64 * deprecated TableHelper in favor of Table
65 * deprecated ProgressHelper in favor of ProgressBar
67 * added a question helper
68 * added a way to set the process name of a command
69 * added a way to set a default command instead of `ListCommand`
74 * added a way to force terminal dimensions
75 * added a convenient method to detect verbosity level
76 * [BC BREAK] made descriptors use output instead of returning a string
81 * added multiselect support to the select dialog helper
82 * added Table Helper for tabular data rendering
83 * added support for events in `Application`
84 * added a way to normalize EOLs in `ApplicationTester::getDisplay()` and `CommandTester::getDisplay()`
85 * added a way to set the progress bar progress via the `setCurrent` method
86 * added support for multiple InputOption shortcuts, written as `'-a|-b|-c'`
87 * added two additional verbosity levels, VERBOSITY_VERY_VERBOSE and VERBOSITY_DEBUG
92 * added support for colorization on Windows via ConEmu
93 * add a method to Dialog Helper to ask for a question and hide the response
94 * added support for interactive selections in console (DialogHelper::select())
95 * added support for autocompletion as you type in Dialog Helper
100 * added ConsoleOutputInterface
101 * added the possibility to disable a command (Command::isEnabled())
102 * added suggestions when a command does not exist
103 * added a --raw option to the list command
104 * added support for STDERR in the console output class (errors are now sent
106 * made the defaults (helper set, commands, input definition) in Application
107 more easily customizable
108 * added support for the shell even if readline is not available
109 * added support for process isolation in Symfony shell via
110 `--process-isolation` switch
111 * added support for `--`, which disables options parsing after that point
112 (tokens will be parsed as arguments)