In addition to the redesigned logs panel, Symfony 5.4 includes other improvements related to the Symfony profiler.
Conditional profiling
Symfony profiler provides an immense amount of debug information to quickly find the cause of any problem. However, that comes at a price, because the profiler must collect all that information while serving the request. This can slowdown the application even for requests where you don't look at the profiler information (which are most of them).
In Symfony 5.4 you can enable the profiler conditionally. To do that, add these two new config options:
1 2 3 4 5
# config/packages/dev/web_profiler.yaml
framework:
profiler:
collect: false
collect_parameter: 'profile'
The collect: false
option disables the profiler by default and the
collect_parameter: profile
option enables it for requests that include the
profile
query parameter.
You can freely choose the query parameter name and you can also enable the profiler by submitting a form field with that name (useful for POST requests) and even a request attribute.
More security information in the profiler
First, the web debug toolbar now shows the security roles of the logged in user (this only includes the roles assigned to the user directly, not the roles assigned to them via the security roles inheritance):
Second, the security profiler panel includes a new tab called "Authenticators" where you can check the security authenticators that were called during the request:
HTML email preview
The Symfony profiler includes an "Emails" panel where you can inspect the details of the emails sent during the processing of the request. When the email is complex, checking its HTML contents is not practical. In Symfony 5.4 we're improving this panel to also preview the rendered HTML contents of the email:
That's a really nice improvement. Many thanks!
Great commitment to developer experience. It's part of what sets Symfony apart. Thank you.
The image that's supposed to show "all the security roles" is showing only ROLE_ADMIN... :-|
Does the collect_parameter support an array? The instance I see is I always want it enabled if XDEBUG is enabled for the request, and conditionally collect if I set a parameter
@Massimiliano you are right! Inherited roles are not displayed in the toolbar. I've redacted the original contents to better explain this. Thanks!
Excellent, congratulations!
very useful! Thank you!