Symfony 6.1 curated new features
Symfony 6.1.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.0 without changing anything in your code.
During the last couple of months, we’ve blogged about the great 6.1 new features. I highly recommend you to read these articles about Symfony 6.1 as they contain the major changes for this new version:
HtmlSanitizer Component: Symfony 6.1 introduces an HtmlSanitizer component to turn user generated HTML contents into safe HTML contents by removing or restricting HTML tags and attributes.
Improved ExpressionLanguage Syntax: In Symfony 6.1, the syntax of the ExpressionLanguage component improves with new notation for numbers and new operators.
Locale Switcher: Symfony 6.1 introduces a Locale Switcher service to change the application locale dynamically.
Improved Routing Requirements and UTF-8 Parameters: In Symfony 6.1, routing requirements can be defined with PHP backed enums and route parameters can include UTF-8 characters.
Serializer Context Builders: In Symfony 6.1 you can build the (de)serialization context using objects that provide a fluent interface with validation and autocompletion.
Draft Emails: Symfony 6.1 will allow you to create draft emails, with all kinds of contents and file attachments, that others can use to create the real emails to be sent.
Service Decoration Attributes: In Symfony 6.1 you can use PHP attributes to configure service decoration.
Service Autowiring Attributes: In Symfony 6.1 you can instruct the autowiring logic in your PHP code thanks to the new Autowire PHP attribute.
Serializer Profiling: Symfony 6.1 will include a new profiler panel with all the details about the (de)serialization process.
Configurable Semaphores: In Symfony 6.1 you can create one or more semaphores automatically via the main framework configuration.
Simpler Bundle Extension and Configuration: In Symfony 6.1, it will be easier than ever to create advanced bundles that define their own configuration and extensions.
Customizable Collection Prototypes: In Symfony 6.1, collection form fields can define different options for items being added and for items being edited.
Expressions as Service Factories: In Symfony 6.1, you can use expressions to define service factories.
Profiler Improvements (part 1): In Symfony 6.1 you can check if the profiler is enabled, you can see the inherited security roles in the toolbar and you can get more debug information about emails.
Profiler Improvements (part 2): Symfony 6.1 profiler can use env vars to select its editor, displays more Xdebug information and allows you to copy HTTP requests as cURL commands.
Notifier and Messenger Integrations: Symfony 6.1 adds integration with Redis Sentinel, 46elks SMS, Orange SMS, Engagespot push notifications, Sendberry SMS and KazInfoTeh SMS.
Services in Route Conditions: In Symfony 6.1, the expressions used to define routing conditions can include calls to service methods.
Improved Console Autocompletion: Symfony 6.1 improves Console autocompletion with support for Fish shell and completion values in input definitions.
Improvements Related to Types: Symfony 6.1 adds new controller argument resolvers for UIDs and Backed Enums types and adds support for extracting types from PHPStan pseudo-types.
Misc. Improvements: Symfony 6.1 allows to ignore deprecations, exclude services for tagged iterators, use route parameters in conditions, support canner methods in serializer, detailed checks for collection item uniqueness and adds a command to invalidate cache tags.