This week, Symfony development activity was frantic with tens of fixes and new features merged. The upcoming Symfony 5.2 version added support for shared locks, integration of Cache and Messenger components to allow computing cached values in a worker and the introduction of PHP 8 compatible attributes for routes and required attributes.
Symfony development highlights
This week, 116 pull requests were merged (67 in code and 49 in docs) and 66 issues were closed (43 in code and 23 in docs). Excluding merges, 61 authors made 5,269 additions and 638 deletions. See details for code and docs.
- 0afa250: [Console] made sure $maxAttempts is an int or null
- 8e34978: [DependencyInjection] fixed ContainerBuilder on PHP8
- 91b6739: [Yaml] prevented parsing invalid octal digits as octal numbers
- 68866fb: [Console] guard $argv + $token against null, preventing unnecessary exceptions
- 1e52146: [Validator] DateTime validator support for trailing data
- 81b954b: [Intl] promoted warnings to value errors on PHP 8
- 899d60c: [Validator] updated Serbian (sr_Latn & sr_Cyrl) translations
- 4b3015f: [Validator] updated Turkish translations
- d441d86, cfec631, 44dd80f: [FrameworkBundle] generate preload.php in src/ to make opcache.preload predictable
- 12b419e: [ErrorHandler] parse "x not found" errors correctly on PHP 8
- f8fddf3: [VarExporter] unserialize() might throw an Exception on PHP 8
- 638f9ec: [DependencyInjection] consistently use same types for strict comparisons
- 9bb8084: [HttpClient] fixed Array to string conversion notice when parsing JSON error body with non-scalar detail property
- afd4027: [Cache] fixed key encoding issue in Memcached adapter
- e8dc35d: [Cache] limit cache version character range
- 0383e53: [HttpClient] fail properly when the server replies with HTTP/0.9
- ac18887: [Cache] fixed ProxyAdapter not persisting items with infinite expiration
- 3825542: [HttpFoundation] skip the cookie_max_age fixture on PHP 8
- 71e8028: [DoctrineBridge] add choice_translation_domain tests to prevent further regressions
- 3c5a4ed: [String] ensure that the offset is part of the string
- f1fd3c0: [Messenger] run postgres setup trigger in transaction
- b84f3ce: [Mailer] fixed Mailgun API bridge JsonException when API response is not applicaton/json
- 393e5c4: [Security] allow to not define any authentication listener
- d0c915c: [Routing] added the Route attribute
- b26f11c: [DependencyInjection] added the Required attribute
- 3ba965a: [MonologBridge] added SwitchUserTokenProcessor to log the impersonator
- 0ceafbc: [HttpClient] allow to provide additional curl options to CurlHttpClient
- 38e4140: [Translation] fixed parsing tokens on PHP 8
- 4c873fe: [Messenger] added the count message awareness on the AmazonSqsMessenger transport
- f1fd3c0: [Messenger] run postgres setup trigger in transaction
- e8dc35d: [Cache] limit cache version character range
- b84f3ce: [Mailer] fixed Mailgun API bridge JsonException when API response is not applicaton/json
- 474e877: [Lock] fixed wrong interface for MongoDbStore
- 9cd3e67: [Messenger] added factory methods to DelayStamp for better DX
- 44dd80f: [DependencyInjection] dumped OS-indepent paths in the compiled container
- 0aae1b4: [Messenger] don't prevent dispatch out of another bus
- 7192d29: [Serializer] added UidNormalizer
- 11b1429: [SecurityBundle] comma separated IPs for security.access_control
- adedd76: [Cache] added integration with Messenger to allow computing cached values in a worker
- 9b84bc0: [Messenger] added option to confirm message delivery in Amqp connection
- d7d479b: [Lock] introduced Shared Lock
- a32fde9: [HttpKernel, Security] allowed adding attributes on controller arguments that will be passed to argument resolvers
Newest issues and pull requests
- [Validator] Constraints as PHP 8 Attributes
- [PropertyInfo] Support multiple types (union types) for collection values
- Add UuidValidator / UlidValidator
They talked about us
- Nikita Popov and Nikolas Grekas on Symfony PHP 8 Compatibility
- Formats Supported By the API Platform
- Bulma and Symfony’s Webpack Encore
- Cascade Persist & Remove in Doctrine
- Symfony Messenger component for CQRS applications
Call to Action
- Follow Symfony on Twitter and retweet this article.
- Subscribe to the Symfony blog RSS and never miss a Symfony story again.