A Week of Symfony #884 (4-10 December 2023)
December 10, 2023 • Published by Javier Eguiluz
This week, Symfony celebrated the SymfonyCon Brussels 2023 conference with great success. During the hackday, the community contributed many bug fixes and new features for the upcoming Symfony 7.1 version. Lastly, we announced the next SymfonyCon edition: SymfonyCon Vienna 2024 (December 5 – 6, 2024).
Symfony development highlights
This week, 73 pull requests were merged (40 in code and 33 in docs) and 44 issues were closed (32 in code and 12 in docs). Excluding merges, 49 authors made 10,323 additions and 48,883 deletions. See details for code and docs.
- a0b3913: [Serializer] fix nullable int cannot be serialized
- 650f153: [Messenger] avoid reconnecting active Redis connections
- 57f60d0: [Console] fix xterm detection
- 7f778ac: [Dotenv] properly handle SYMFONY_DOTENV_VARS being the empty string
- 7121397: [Console] fix color support check on non-Windows platforms
- ff864b1: [Mailer] stop using the (local) AWS shared configuration in PHPUnit
- be829a9: [Validator] update Slovak translations
- db099a3: [HttpKernel] catch TypeError if the wrong type is used in BackedEnumValueResolver
- 1c87e55: [ExpressionLanguage] fix null coalescing propagation
- c481dba: [WebProfilerBundle] fix intercept external redirects
- 83b5c67: [VarDumper] test intl formatter broken since dumper does not replace the nnbsp character by standard space
- 27bc8d6: [FrameworkBundle] added missing XML attribute in Webhook config XSD
- a314b65: [SecurityBundle] fix redeclaration of InternalSecurity class when opcache preload is active
- f58cf04: [WebProfilerBundle] fix "Copy as cURL"
- f0099d9: [FrameworkBundle] fix profiling command in web context
- fec8909: [FrameworkBundle] fix profiling commands without router
- abf4125: [WebProfiler] fix unclosed JS script cannot be parsed
- ca43978: [CssSelector, Serializer, Translation, Command] clean unused code
- 4644f47: [PropertyInfo] make PhpDocExtractor::getDocBlock() public
- e6c260d: [HttpFoundation] add UploadedFile::getClientOriginalPath() to support directory uploads
- 11f09e0: [Messenger] improve PHPDoc descriptions of attribute classes and properties
- dc330b0: [Messenger] add --all option to messenger:consume
- 5d50fa8: [PropertyAccess, Serializer] fix "type unknown" on denormalize
- 05b677c: [Mailer] dispatch event for Postmark's "inactive recipient" API error
- 229cbf2: [Workflow] add getEnabledTransition() method annotation to WorkflowInterface
- 48951a0: [Cache, Messenger] make both options redis_sentinel and sentinel_master available everywhere
- c4e97eb: [HttpClient] add HttpOptions->addHeader as a shortcut to add an header in an existing options object
- 088bd94: [Mailer] add Azure bridge
- 37634c6: [Form] errors Property Paths mismatch CollectionType children when removing an entry
- 5ae3df5: [Security, SecurityBundle] add #[IsCsrfTokenValid] attribute
Newest issues and pull requests
- [AssetMapper] Support requiring Sass .scss files in the same way as CSS
- [Messenger] Support extending AsMessageHandler attribute
- Built In automatic Scheduler monitoring
- [Messenger] Add $previous to failed message details
- [AssetMapper] Some comments and questions
- [Routing] Use the controller's FQCN as default internal route name, instead of app_controller_method
Symfony CLI
Symfony CLI is a must-have tool when developing Symfony applications on your local machine. It includes the Symfony Local Server, the best way to run local Symfony applications. This week Symfony CLI released its new 5.7.4 and 5.7.5 versions with the following changes:
- Avoid adding the same service more than once in psh configs (@fabpot)
- Add --api flag to local:new command to create a new API project (@pierredup)
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.
This week, SymfonyCasts continued publishing videos of a new course called 30 Days with LAST Stack which is free until January 15, 2024:
- (Video) 30 Days with LAST Stack, Chapter 04: 3rd Party JavaScript Packages
- (Video) 30 Days with LAST Stack, Chapter 05: CSS
- (Video) 30 Days with LAST Stack, Chapter 06: Tailwind CSS
- (Video) 30 Days with LAST Stack, Chapter 07: Stimulus
- (Video) 30 Days with LAST Stack, Chapter 08: Symfony UX Packages
- (Video) 30 Days with LAST Stack, Chapter 09: Turbo Drive
They talked about us
- Symfony Station Communiqué - 08 December 2023
- SymfonyCon follow-up: Doctrine entities vs Domain entities
- Master task scheduling with Symfony Scheduler
- How to Implement a Simple Queue in Symfony
- Symfony and iRODS Optimization: Python, Asynchronous Handling, and Redis Integration
- PHP and Symfony Apps As Standalone Binaries
- Month of Sylius: November
- Des filtres enregistrés dans vos admins Sonata
- Maîtrisez la planification des tâches avec Symfony Scheduler
- SymfonyCon Brussel 2023
- Symfony Profilerのココが好き!
- symfony/skeletonのcomposer.jsonを読んでみる
- symfonyでvalidationのメッセージを日本語化したメモ
Call to Action
- Follow Symfony on Twitter and retweet this article.
- Subscribe to the Symfony blog RSS and never miss a Symfony story again.
Help the Symfony project!
As with any Open-Source project, contributing code or documentation is the most common way to help, but we also have a wide range of sponsoring opportunities.
Comments are closed.
To ensure that comments stay relevant, they are closed for old posts.