This week, the upcoming Symfony 7.4 version deprecated the XML configuration format for services and routing, introduced new attributes to configure console arguments, deprecated the get() method of the Request class, and improved the caching HTTP client.
Symfony development highlights
This week, 64 pull requests were merged (51 in code and 13 in docs) and 46 issues were closed (29 in code and 17 in docs). Excluding merges, 29 authors made additions and deletions. See details for code and docs.
- 372d809: [Form] do not cast too big floats to int
- 6e045bf: [Mailer] fix forbidden headers case-sensitive comparison in MailJet
- d7186d2: [Intl] support time in generated data in currencies validity
- 4afa086: [Serializer] fix discriminator class mapping with allow_extra_attributes=false
- 07a5ed4: [Console] ensure terminal is usable after termination signal
- 4221e02: [Form] keep labels from configured choices
- 56398ed: [Cache] fix compatibility with Relay 0.12
- fa57daf: [TypeInfo] ArrayShape can resolve key type as callable instead of string
- 6b6a6a5: [Scheduler] don't get next run date from null
- 26f9bbb: [FrameworkBundle] fix support of dumping workflow when workflow is decorated by TraceableWorkflow
- 37029cc: [Config] config builders should accept booleans for array nodes that can be enabled or disabled
- 9c413a3: [HttpClient] make CachingHttpClient compatible with RFC 9111
- 2284ac7: [Serializer] XML empty array encoding
- 4da3b18: [Lock] replace PHPUnit annotation with attribute
- b68f0e6: [Config] add array-shapes to generated config builders
- d95fb96: [DependencyInjection] handle returning arrays and config-builders from config files
- 172e24c: [Config, DependencyInjection, Routing] deprecate using $this or the internal scope of the loader from PHP config files
- 9731ad4: [DependencyInjection, Routing] handle declaring services and routes using PHP arrays that follow the same shape as corresponding YAML files
- e725892: [HtmlSanitizer] remove redundant assignment to promoted property config
- c8e4bf8: [Form] add new active_at, not_active_at and legal_tender options to CurrencyType
- 74fc896: [DependencyInjection, Routing] deprecate XML configuration format
- 127d329: [Console] rename #[Input] to #[MapInput]
- 00bb316: [Validator] bad value on AbstractComparison constructor using array parameter
- 6b38714: [DependencyInjection] deprecate ExtensionInterface::getXsdValidationBasePath() and getNamespace()
- 99363c0: [Workflow] move the dump command to the component
- 3786682: [Validator] fix handling Doctrine-style options handling
- 28fba80: [HttpFoundation] deprecate Request::get() in favor of using properties ->attributes, query or request directly
- 770dc40: [Console] add support for interactive invokable commands with #[Interact] and #[Ask] attributes
- 1c3f572: [FrameworkBundle] remove deprecated --show-arguments from debug:container command
- 3ce1fa9: [DependencyInjection, Routing] remove support for the XML configuration format
Newest issues and pull requests
- [HttpFoundation] Deprecate HTTP method override for methods GET, HEAD, CONNECT and TRACE
- [Workflow] Allow to define workflow with PHP attributes
- [DependencyInjection] Register a custom autoloader to generate Config classes when they don't exist yet
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.15.0, and 5.15.1 versions with the following changes:
- Fix early return (@chirimoya)
- Bump deps (@fabpot)
- Wrap the deploy Cloud command to warn about the ambiguity (@fabpot)
- Rename Platform.sh to Upsun Fixed and Upsun to Upsun Flex (@fabpot)
- PSH is now Upsun (@tucksaun)
- Bump Go to 1.25 (@tucksaun)
- Add missing Git guards (@fabpot)
Symfony Jobs
These are some of the most recent Symfony job offers:
- Symfony Developer at Inventis
Full-time - €26,000 – €60,000 / year
Remote + part-time onsite (Oudsbergen, Belgium)
View details - Backend Symfony Developer at MondoSpedizioni
Full-time - €29,000 – €45,000 / year
Remote + part-time onsite (Rome, Italy)
View details - Backend Symfony Developer at Peopulse
Full-time - €30,000 – €55,000 / year
Remote + part-time onsite (Toulouse, France)
View details - Backend Symfony Developer at I-GTM Ltd (EdTech SaaS Platform)
Part-time / Temporary - £300 – £450 / day
Remote + part-time onsite (London, Edinburgh, Oxford, United Kingdom)
View details - Frontend Developer for a Symfony project at AlfaDocs
Full-time - €60,000 – €80,000 / year
Full remote
View details
You can publish a Symfony job offer for free on symfony.com.
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 published the following updates:
- (Video) Symfony Bundle Development: Share the Love: Translation Logic
- (Video) Symfony Bundle Development: Share the Love: Translatable Mapping
- (Video) Symfony Bundle Development: Share the Love: TDD
TranslatedObject
Translations - (Video) Symfony Bundle Development: Share the Love: TDD Getter Behaviour
They talked about us
- The Perfect Match: Twig and Stimulus in Symfony
- A Developer's Guide to the Command Logger Bundle for Symfony
- Doctrine ORM Performance Pitfalls: Lazy vs Eager vs Extra Lazy
- Running Long-Living Workers in PHP with Symfony Messenger
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.