This week, we focused on finishing several new features for the upcoming Symfony 6.2 version: Console added support for multiple choice questions; we applied the SensitiveParameter PHP attribute to all the parameters that can contain sensitive values such as security tokens and passwords; and we enabled the use of lazy-loading ghost object proxies in Dependency Injection. Finally, we moved #[IsGranted()], #[Template()] and #[Cache()] attributes into Symfony components so we can get rid of the SensioFrameworkExtra bundle.
Symfony development highlights
This week, 42 pull requests were merged (33 in code and 9 in docs) and 25 issues were closed (17 in code and 8 in docs). Excluding merges, 27 authors made 30,698 additions and 14,089 deletions. See details for code and docs.
- 43126b1: [Messenger] fix calls to deprecated DBAL methods
- b1cd4b0: [HttpFoundation] fix deleteFileAfterSend on client abortion
- 2184f32: [BrowserKit] fix sending request to paths containing multiple slashes
- 92c7e6e: [HttpFoundation] flush backend output buffer after closing
- 550e4cc: [Validator] fix traverse option on Valid constraint when used as Attribute
- 9eca550: [Validator] fix PHP warning in NotCompromisedPasswordValidator
- 8dd6bb7: [Serializer] prevent that bad Ignore method annotations lead to incorrect results
- 7c194b9: [HttpKernel] refactored some code to remove else logic
- 47b66a9: [Console] add multiple select to choice()
- 4a31363: hide sensitive information with SensitiveParameter PHP attribute
- 3edca67, fa24df6: [Security] add #[IsGranted()]
- 378902e: [TwigBridge] add #[Template()] to describe how to render arrays returned by controllers
- 338daf2: [VarExporter] add trait to help implement lazy loading ghost objects
- 96667d3: [HttpKernel] add #[Cache()] to describe the default HTTP cache headers on controllers
- d095a50: [DependencyInjection] use lazy-loading ghost object proxies out of the box
- c3bad04: [TwigBridge] add test on _template attribute for Twig listener
- e938174: [DependencyInjection] fix dumping lazy services with parametrized class
- 8a6fa52: [DependencyInjection, VarExporter] fix support for lazy withers
- 2bf5206: [VarExporter] do not call unset() on unknown variables
- a2f27ad: [Console] be explicit about the completion API version
- 5bc5827: [FrameworkBundle] add "Usages" to debug:container output
Newest issues and pull requests
- Improve #[IsGranted] attribute
- [Messanger] Allow AsMessageHandler to configure routing
- [Serializer] Introducing an AbstractNormalizer const for custom constructor
SymfonyCasts Updates
SymfonyCasts is the official way to learn Symfony. Select a track for a guided path through 100+ video tutorial courses about Symfony, PHP and JavaScript.
These were some of the most relevant SymfonyCasts updates of the week:
- (Video) Symfony 6 Fundamentals: Services, Config & Environments, Chapter 12: Dependency Injection
- (Video) Symfony 6 Fundamentals: Services, Config & Environments, Chapter 13: Parameters
- (Video) Symfony 6 Fundamentals: Services, Config & Environments, Chapter 14: Manual Service Config in services.yaml
- (Video) Symfony 6 Fundamentals: Services, Config & Environments, Chapter 15: All About services.yaml
They talked about us
- Symfony Station Communiqué - 15 July 2022
- Creating a Symfony project from zero to success in 52 weeks (week 2)
- How to make Doctrine (way) faster
Call to Action
- Follow Symfony on Twitter and retweet this article.
- Subscribe to the Symfony blog RSS and never miss a Symfony story again.
<hr style="margin-bottom: 5px" />
<div style="font-size: 90%">
<a href="https://symfony.com/sponsor">Sponsor</a> the Symfony project.
</div>
Login to add comment
Other posts in this group

Contributed by Jérôme Tamarelle in

This week, we kicked off the New in Symfony 7.3 blog series, highlighting all the exciting new features coming in this release. We also unveiled more details about some of the SymfonyOnline June 2025

SymfonyOnline June 2025 is almost here, starting in almost 2 months on:
June 10-11: Workshop days. It is possible to attend 1 two-day training or 2 one-day trainings. June 12-13: Online confe

Symfony's Messenger component makes it easy to build message-driven applications. However, developers using symfony/amqp-messenger have long faced a limitation: it relies on polling (get()), which can

SymfonyLive Berlin 2025 took place just 3 weeks ago!
A huge thank you to everyone who joined us!🔥 The conference brought together the local Symfony community in the heart of Berlin for two da

Contributed by Hubert Lenoir in

SymfonyOnline June 2025 is almost here, starting in almost 2 months on:
June 10-11: Workshop days. It is possible to attend 1 two-day training or 2 one-day trainings. June 12-13: Online confe