This week, development activity focused on new security features. The upcoming Symfony 7.3 version added support for security voters to explain their vote, improved the IsGranted attribute to allow using PHP callables, and made some changes to enhance the DX of recent security additions.
Symfony development highlights
This week, 32 pull requests were merged (22 in code and 10 in docs) and 16 issues were closed (12 in code and 4 in docs). Excluding merges, 20 authors made 3,158 additions and 1,765 deletions. See details for code and docs.
- f48cf1b: [Semaphore] allow redis cluster/sentinel dsn
- 757fcbb: [Mime] use address for body at PathHeader
- b88f9b5: [Validator] synchronize IBAN formats
- d6e0af4: [DependencyInjection] defer check for circular references instead of skipping them
- 365aca3: [Stopwatch] fix StopWatchEvent never throws InvalidArgumentException
- 33f70b7: [TypeInfo] fix create union with nullable type
- 385efaf: [DependencyInjection] fix phpdoc for $configurator in Autoconfigure attribute
- 2962567: [Security] add ability for voters to explain their vote
- f48e068: [Messenger] add TransportMessageIdStamp logic for AMQP
- 3ef4f4e: [Notifier] return the record CID as additional info in Bluesky bridge
- ab6c611: [Security] allow using a callable with #[IsGranted]
- 77b8358: [TypeInfo] add type alias support
- 560a484: [Framework] deprecate the framework.validation.cache config option
- dfd8e53: [Validator] add support for closures in When constraint
- 68944f5: [JsonEncoder] replace normalizers by value transformers
- 0fc079f: [Messenger] add options to specify SQS queue attributes and tags
- aa53b94: [PropertyInfo] replace NameScope by TypeInfo's TypeContext
- 0c7c251: [Security] improve DX of recent additions
Newest issues and pull requests
- [Cache] Enable namespace-based invalidation by prefixing keys with backend-native namespace separators
- [Form] Define the labels of the BirthdayType
- [TypeInfo] Add ArrayShapeType class
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.11.0, version with the following changes:
- Improve cleaning up stale temp directories if workers fail to shutdown (@tucksaun)
- Extract WSL check fron symfony-cli/console package (@tucksaun)
- Make command names case insensitive (@tucksaun)
- Fix Docker client version (@fabpot)
- Bump proxy and dependencies (@fabpot)
Symfony Jobs
These are some of the most recent Symfony job offers:
- Backend Symfony Developer at UpMarket B.V.
Contract / Freelance - €3,500 – €5,000 / month
Full remote
View details - Backend Symfony Developer at Awaretrain
Full-time - €3,500 – €5,000 / month
Remote + part-time onsite (Nijmegen, Netherlands)
View details - Lead Symfony Developer at E-Liberty
Full-time - €40,000 – €60,000 / year
Remote + part-time onsite (Chambery, France)
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:
They talked about us
- Symfony Station Communiqué - 21 February 2025
- Symfony Certification
- Automatically Generate Bruno API Collections from Your Symfony Routes
- Introducing the Symfony Dependency Injection Container in Legacy Code
- Building REST APIs With API Platform and MongoDB
- Load Stimulus Controllers in Symfony EasyAdmin
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.