e5ddd14b1d
This PR was squashed before being merged into the 3.4 branch (closes #22113).
Discussion
----------
[Lock] Include lock component in framework bundle
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | none
| License | MIT
| Doc PR | https://github.com/symfony/symfony-docs/pull/8066
## Usage
use the best available "out of box" store (semaphore if available, filesyste otherwise)
```yml
framework:
lock: ~
# lock: true
```
```php
$this->get('lock')->acquire();
$this->get('lock.factory')->createLock('my resource')->acquire();
```
use a specific store
```yml
framework:
lock: flock
# lock: semaphore
# lock: redis://localhost
# lock: "%env(MEMCACHED_DSN)%"
# lock: ["%env(REDIS_DSN_1)%", "%env(REDIS_DSN_2)%"]
```
```php
$this->get('lock')->acquire();
$this->get('lock.factory')->createLock('my resource')->acquire();
```
use a named lock
```yml
framework:
lock:
foo: flock
bar: redis://localhost
```
```php
$this->get('lock.foo')->acquire();
$this->get('lock.bar.factory')->createLock('my resource')->acquire();
```
factory usage
```xml
<service id="acme" class="AppBundle\Acme">
<argument type="service">
<service class="Symfony\Component\Lock\Lock">
<factory service="lock.foo.factory" method="createLock" />
<argument>my resource</argument>
<argument>30</argument> <!-- optional TTL -->
</service>
</argument>
</service>
```
* [x] Tests
Commits
-------
|
||
---|---|---|
.. | ||
Compiler | ||
Configuration.php | ||
FrameworkExtension.php |