New in Symfony 5.4: Console Autocompletion (Symfony Blog)


Symfony 5.4
is backed by Private Packagist. Private Packagist is a fast, reliable, and secure Composer repository for your private packages. It mirrors all your open-source dependencies for better availability and monitors them for security vulnerabilities.

Symfony 5.4 and Symfony 6.0 will be released simultaneously at the end of
November 2021. According to the Symfony release process, both versions will
have the same features, but Symfony 6.0 won’t include any deprecated features.

This is the first article of the series that shows the most important new
features introduced by Symfony 5.4 and 6.0 versions.


Symfony Console is one of the favorite Symfony Components and the most
downloaded one if we exclude the Polyfill components (368 million downloads as
of October 2021). It’s packed with features and it has become the standard way
of creating CLI applications in PHP.

In Symfony 5.4 we’ve improved the Console component with the most important and
most requested missing feature: autocompletion. When running a Symfony command
you can now press the TAB key to see a list of contextual suggestions.

In the following GIF, you can see how pressing the TAB key first shows the
list of commands available. After typing secrets:remove, when you press TAB
again it autocompletes the argument value with one of the valid secret names of
the application:

Symfony Console Autocompletion in Symfony applications

Autocompletion not only will boost your productivity, but it will also prevent
many typos and issues when passing options and arguments to commands. This feature
works for Bash shell, but we intend to support other shells such as Zsh and Fish
in the near future. Also, this is not limited to Symfony applications. The following
GIF shows the autocompletion of options and arguments in a Laravel command:

Symfony Console Autocompletion in Other Applications such as Laravel

Technically, autocompletion is enabled when your command class defines a complete()
method. Inside this method you need to generate the appropriate suggestions for
each input. For example, if your command defines an argument called format
which only allows passing json and xml as its values, add this:

Usually, the suggestions will be dynamic, so you’ll need to call some other
methods and services to generate those values instead of passing an array of
values to suggestValues().

During these past weeks, the Symfony community has worked on a colossal joint
effort to add autocompletion for all internal Symfony commands. Here’s the list
of commands updated so far:



Source link

Latest articles

Related articles

Leave a reply

Please enter your comment!
Please enter your name here