Symfony 6.3 curated new features
Symfony 6.3.0 has been released. As for any other Symfony release, our backward compatibility promise applies and this means that you should be able to upgrade easily to 6.3 without changing anything in your code.
During the last couple of months, we’ve blogged about the great 6.3 new features. I highly recommend you to read these articles about Symfony 6.3 as they contain the major changes for this new version:
Early Hints: Symfony 6.3 adds support for Early Hints, which allows browsers to download assets while servers are still preparing a response. This improves perceived performance significantly.
NoSuspiciousCharacters Constraint: Symfony 6.3 includes a new NoSuspiciousCharacters constraint to avoid spoofing security attacks based on using characters that are different but look the same.
HTTP Exception Attributes: Symfony 6.3 introduces two new attributes to configure the status code, headers and log level of your HTTP exceptions.
Mapping Request Data to Typed Objects: Symfony 6.3 introduces two new PHP attributes to map the incoming request data into typed objects like DTOs and validates them automatically.
Targeted Value Resolvers: Symfony 6.3 introduces a new ValueResolver attribute to explicitly select the argument resolver to use in the controller arguments.
Password Strength Constraint: Symfony 6.3 includes a password strength validator to check that the given passwords reach a certain security level based on their entropy.
OpenID Connect Token Handler: Symfony 6.3 adds compatibility with OpenID Connect servers via two new OIDC token handlers.
Request Payload: Symfony 6.3 adds a getPayload() method to the Request object to get their POST contents and/or body contents.
Serializer Debug Command: Symfony 6.3 includes a new command that dumps the serializer metadata of a given class to help you debug any Serializer issues.
Form Improvements: Symfony 6.3 improves the handling of seconds in date/time fields, updates the usage of HTML5 widgets for date/time and allows to configure the choice placeholder options.
Enum Improvements: Symfony 6.3 adds support for enums in expressions, config trees and route parameters.
Login and Logout Improvements: Symfony 6.3 allows to redirect users after their programmatic login, adds Remember Me support for JSON logins and allows to clear site data after user logout.
Query Parameters Mapper: Symfony 6.3 includes a new MapQueryParameter attribute to map and validate individual query string parameters to controller arguments.
Performance Improvements: Symfony 6.3 improves performance of translation message extraction, service container compilation and serializer normalization/denormalization.
Emoji Improvements: Symfony 6.3 adds a new feature to strip emojis from string contents and the option to compress all the emoji data to save disk space.
Webhook and RemoteEvent Components: Symfony 6.3 introduces some new components to ease the creation and handling of webhooks in your applications.
Clock Improvements: Symfony 6.3 introduces a new Clock class and a new ClockAwareTrait; it also integrates the Clock component in other Symfony features.
DX Improvements (Part 1): Symfony 6.3 includes DX improvements in the global app variable, the YAML component, the profiler, the cache pools and the dump functions.
HttpClient Improvements: Symfony 6.3 improves the HTTP client with a new JsonMockResponse, multiple retry URIs, extra configurable options, TLSv1.2 by default, file upload improvements and support for URI templates.
DX Improvements (Part 2): Symfony 6.3 will include DX improvements such as invisible character detection in VarDumper, improved dumping of YAML dates, build parameters in service container and streamed JSON responses.
Notifier Integrations: Symfony 6.3 adds new Notifier integrations for Twitter, Mastodon, LINE, Pushover, PagerDuty and more.
WebProfiler Improvements: Symfony 6.3 improves the profiler with better accessibility, dynamic favicons and clickable template paths.
DX Improvements (Part 3): Symfony 6.3 improves the Cascade constraint, allows to trim XML parameters, allows to set services in the test container and improves the handling of Console signals.
Dependency Injection Improvements: Symfony 6.3 improves the Dependency Injection component to add support for autowiring services as closures and callable methods, generating adapters for functional interfaces and for autowiring lazy services, providing a way to express the need for laziness on the consumer side.
AssetMapper Component: Symfony 6.3 includes a new AssetMapper component with full import maps support as an alternative to Webpack Encore.
Webhook Integration with Mailer and Notifier: Symfony 6.3 provides full webhook integration with Mailer and Notifier to abstract the differences in the handling of webhooks of third-party services.
Scheduler Component: Symfony 6.3 includes a new Scheduler component that integrates tightly with the Messenger component to create messages that should be handled multiple times on a predefined schedule.