New in Symfony 6.2: Better Debugging Commands


Symfony includes many commands to help you debug issues in your applications
while developing them. In Symfony 6.2 we're improving some of those commands and
adding new ones.

New Command to Count Pending Messages

Contributed by Kévin Therage
in #46571.

A useful metric to know when working with the Messenger component is the
number of queued messages pending to be processed. In Symfony 6.2 we're adding a
new messenger:stats command to show you that:

# displays the number of queued messages in all transports
$ php bin/console messenger:stats

# shows stats only for some transports
$ php bin/console messenger:stats my_transport_name other_transport_name

Improved Config Debug

Contributed by Alexandre Daubois
in #46821.

The debug:config displays by default the placeholders of env vars instead of
their actual values. For example:

$ php bin/console debug:config framework secret
secret: '%env(APP_SECRET)%'

In Symfony 6.2 we're adding a new --resolve-env option to that command to
display the actual value the env vars:

$ php bin/console debug:config framework --resolve-env secret
secret: 90d83502629d64dec4cd6e33c9b31267

Improved Env Var Debug

Contributed by Rokas Mikalkėnas
in #46502.

In Symfony 6.2, the debug:dotenv command adds a new optional argument to
only display the variables whose names match fully or partially the given string:

$ php bin/console debug:dotenv AWS
// ...
---------------------- -------------------------------------
Variable Value
---------------------- -------------------------------------
AWS_ACCESS_KEY_ID ...
AWS_SECRET_ACCESS_KEY ...
AWS_DEFAULT_REGION ...
...

New Mailer Test Command

Contributed by Fabien Potencier
in #47040.

A common need when working with emails is to test if a given mailer works properly.
The easiest way to do that is to send an actual test email through that mailer.
That's why in Symfony 6.2 we're adding a new mailer:test command:

# the only required argument is the TO address
$ php bin/console mailer:test someone@example.com

# you can customize the FROM address, subject, body and transport name
$ php bin/console mailer:test someone@example.com
--from=testing@example.com
--subject="New test to check if email works"
--body="Lorem ipsum dolor sit amet"
--transport=the-transport-name

You can't use features such as file attachments because the purpose of the command
is just to test if a certain transport works (i.e. is properly configured). Also,
note that this command bypasses the Messenger bus (if configured) to ease testing
even when the messenger consumer is not running.

Sponsor the Symfony project.