New in Symfony 5.3: Improved Debug Commands
Debug console commands are one of the key parts of the Symfony debugging
experience. In Symfony 5.3 we improved them with new features and new commands.
Debug Events by Event Dispatcher¶
The recent features introduced in the Security component have changed the
number of event dispatchers Symfony applications have by default. Each firewall
now defines its own dispatcher, whereas the debug:event-dispatcher command
only displays the default dispatcher.
In Symfony 5.3 we added a new –dispatcher option to display the events
associated to the given event dispatcher:
2
3
4
5
6
7
8
9
10
11
12
13
Registered Listeners of Event Dispatcher „security.event_dispatcher.main“ Grouped by Event
==========================================================================================
„SymfonyComponentSecurityHttpEventLogoutEvent“ event
———————————————————
——- ——————————————————————————————- ———-
Order Callable Priority
——- ——————————————————————————————- ———-
#1 SymfonyComponentSecurityHttpEventListenerCsrfTokenClearingLogoutListener::onLogout() 0
——- ——————————————————————————————- ———-
Better Event Debugging¶
Contributed by
Tobias Nyholm
in #39323.
In Symfony 4.3 we started moving away from strings to name events in favor of
using fully-qualified class names. This makes your code simpler, but it
complicates the usage of the debug:event-dispatcher command when you want to
filter by event.
2
3
4
5
6
7
8
9
10
$ php bin/console debug:event-dispatcher Symfony\Component\Mailer\Event\MessageEvent
——- ————————————————————————— ———-
Order Callable Priority
——- ————————————————————————— ———-
#1 SymfonyComponentMailerEventListenerMessageListener::onMessage() 0
#2 SymfonyComponentMailerEventListenerEnvelopeListener::onMessage() -255
#3 SymfonyComponentMailerEventListenerMessageLoggerListener::onMessage() -255
——- ————————————————————————— ———-
In Symfony 5.3 we improved this command to search for events using its full name
or any part of it. That’s way the following commands produce the same result
as above:
2
3
4
5
$ php bin/console debug:event-dispatcher mailer
$ php bin/console debug:event-dispatcher MessageEvent
$ php bin/console debug:event-dispatcher messageEvent
$ php bin/console debug:event-dispatcher messageevent
New Command to Debug Firewalls¶
As part of the recent improvements related to security, in Symfony 5.3 we’ve
added a new command to debug security firewalls.
Run the command without arguments to list the firewalls or pass a firewall name
to debug it:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Firewall „main“
===============
———————– —————————————————
Option Value
———————– —————————————————
Name main
Context main
Lazy Yes
Stateless No
User Checker security.user_checker
Provider security.user.provider.concrete.app_user_provider
Entry Point AppSecurityLoginFormAuthenticator
Access Denied URL
Access Denied Handler
———————– —————————————————
User switching
————–
———– —————————————————
Option Value
———– —————————————————
Parameter test
Provider security.user.provider.concrete.app_user_provider
User Role ROLE_SWITCH_POSSIBLE
———– —————————————————
Event listeners for firewall „main“
===================================
„SymfonyComponentSecurityHttpEventLoginSuccessEvent“ event
—————————————————————
// …
Authenticators for firewall „main“
==================================
// …
Symfony Blog
Read More