This week, Symfony 6.4.20 and 7.2.5 maintenance versions were released. In addition, Symfony successfully celebrated the SymfonyLive Paris 2025 conference and continued preparations for next week's SymfonyLive Berlin 2025 conference. Finally, we announced a new Core Team member who will be in charge of the Symfony CLI.
Symfony development highlights
This week, 67 pull requests were merged (47 in code and 20 in docs) and 31 issues were closed (19 in code and 12 in docs). Excluding merges, 41 authors made 17,541 additions and 6,746 deletions. See details for code and docs.
- 3df7170: [AssetMapper] update JsDelivrEsmResolver::IMPORT_REGEX to support dynamic imports
- 8b43964: [Serializer] fix code skipped by premature return
- 5a0d245: [Form] use duplicate_preferred_choices to set value of ChoiceType
- bc82b67: [TypeInfo] fix isSatisfiedBy not traversing type tree
- 2f6b2e6: [Cache, DoctrineBridge, HttpFoundation, Lock, Messenger] use Table::addPrimaryKeyConstraint() with Doctrine DBAL 4.3+
- 02161b7: [Serializer] fix ObjectNormalizer default context with named serializers
- cf5b2f0: [Console] add support for invokable commands in LockableTrait
- 322995c: [Messenger] add --class-filter option to the messenger:failed:remove command
- 6f598f9: [Routing] add alias in {foo:bar} syntax in route parameter
- 6872336: [DoctrineBridge] add new DatePointType Doctrine type
- 1492e46: [Security] add methods param in IsCsrfTokenValid attribute
- 4fb2615: [FrameworkBundle, HttpKernel] allow configuring the logging channel per type of exceptions
- 21b4dd7: added a new ObjectMapper component
- 452ad95: [TypeInfo] add ArrayShapeType::$sealed
- 7100c7b: [Mailer, Mime] refactor S/MIME encryption handling in SMimeEncryptionListener
- f7aae0b: [JsonStreamer] max depth handling and JSON errors
- 0b026f9: [TwigBundle] enable #[AsTwigFilter], #[AsTwigFunction] and #[AsTwigTest] attributes to configure runtime extensions
- e282c2f: [Messenger] use newer version of Beanstalkd bridge library
- d93dc9c: [FrameworkBundle] added binding for Object Mapper component
- b5b0cbf: [Mailer] fix compatibility with TwigBridge < 7.3
- f1e169e: [TypeInfo] require phpstan/phpdoc-parser to fully support sealed array shapes
- 23e2230: [Messenger] add default exchange support in Amqp
- 6ae4c85: [TwigBridge, Validator] add the Twig constraint and its validator
- 38e0df1: added a new JsonPath component
- 681d4e7: [JsonPath] fix error message when evaluating a resource
- d442a43: [HttpKernel] remove always-true condition on existence of DI Autowire class
- f6b63a2: [Console] deprecate returning a non-int value from a \Closure function set via Command::setCode()
- 981b556: [FrameworkBundle] enable controller service with #[Route] attribute
- 2f9677b: [TwigBridge] collect all deprecations with lint:twig command
- cca60b4: [WebProfilerBundle] update the logic that minimizes the toolbar
- 764fe52: [Notifier] deprecate sms77 Notifier bridge
Newest issues and pull requests
- [HttpCache] Use RFC9211 Cache-Status
- [ErrorHandler] Add SapiErrorRendererSelector for context-based error rendering
- [Console] Add support for extension of AsCommand attribute
- [ObjectMapper] Condition allows target class name
- [Mailer] add support for external template engine to mail
Symfony Jobs
These are some of the most recent Symfony job offers:
- Lead Symfony Developer at Vacatia
Full-time - $150,000 – $180,000 / year
Remote + part-time onsite (Portland, Oregon, United States)
View details - Backend Symfony Developer at Polavis
Contract / Freelance - €30 – €45 / hour
Full remote
View details - Backend Symfony Developer at Cobbleweb
Full-time - €40,000 – €75,000 / year
Full remote
View details
You can publish a Symfony job offer for free on symfony.com.
They talked about us
- Symfony Station Communiqué - 28 March 2025
- Storyblok unveils new PHP packages in collaboration with SensioLabs
- Symfony and AI: the video is now available
- How to Structure a PHP Project: Best Practices and Real Examples
- Develop Faster With FrankenPHP
- Decouple your Symfony frontend using Next.js
- Using service facades in a Symfony application — part 1
- Using service facades in a Symfony application — part 2
- 2025: a year of anniversaries for PHP, AFUP, Symfony and API Platform
- How Symfony Flex Works
- L'injection de dépendance, ou comment être fainéant avec élégance
- Les attributs PHP : ou comment Symfony s'est mis à la déco d'intérieur
Call to Action
- Follow Symfony on X, on Mastodon, on Bluesky and on Threads and share this article.
- Subscribe to the Symfony blog RSS and never miss a Symfony story again.