Contributed by Jérémy Derussé in #44155.
In Symfony 5.2 we introduced a Semaphore component as an alternative to the existing Lock component. According to the Wikipedia definition, a semaphore is a variable or abstract data type used to control access to a common resource by multiple processes in a concurrent system such as a multitasking operating system. Broadly speaking, a semaphore allows N process to access a resource, and a lock is a semaphore where N = 1. In Symfony 6.1 we're improving Semaphore integration in Symfony applications thanks to the new framework.semaphore option. First, you can pass a string with the DSN of the store used by the semaphore:
# config/packages/framework.yaml
framework: semaphore: redis://localhost
If your application uses multiple semaphores, configure each of them separately using the same configuration option:
# config/packages/framework.yaml
framework: semaphore: invoices: redis://localhost/1 orders: redis://localhost/2
That's all! Symfony will create the configured semaphore(s) and will make them available to your application.
Sponsor the Symfony project.
Login to add comment
Other posts in this group

This week, Symfony development focused on improving the IsGranted attribute with a new option, updated the Route attribute to allow setting multiple environments, improved the DomCrawler component to

This week, development activity mostly focused on dealing with the deprecation of sleep/wakeup methods in PHP 8.5 and their replacement by serialize/unserialize methods. In addition, we published more

It’s been only in July that we published symfony/ai and kicked off our AI initiative, but the repository has been busy since day one. Over 500 stars, more than 200 pull requests & issues, trending

🎤 Take the stage at SymfonyCon Amsterdam 2025, on your own terms!
The Unconference track is back and more dynamic than ever!
This unique, participant-driven format invites attendees to shape

This week, Symfony completed the migration to PHPUnit 12 in the 7.4 branch, which required many changes during the past weeks, such as replacing annotations with attributes. In addition, we updated th

🧑💻HACKDAY IS COMING!
Get ready to code, collaborate, and contribute, Symfony Hackday is back!
Join us in Amsterdam on Saturday, November 29th, for a hands-on hackathon designed to bring the

This week, Symfony released the maintenance versions 6.4.24, 7.2.9, and 7.3.2. Meanwhile, we began deprecating the XML configuration format in some components, enhanced the YAML configuration format t