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)
Call to Action
- Follow Symfony on Twitter and retweet this article.
- Subscribe to the Symfony blog RSS and never miss a Symfony story again.
Please, I implore you, do not provide links (in "they talked about us" section) just because someone mentions you. You are clearly not reading them before posting. This week "how to make Doctrine (way) faster" is yet another example of useless or even outright harmful article. It is bad on soooo many levels
@Aleksandr we've removed the link to the article that you mentioned. Thanks.