<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Lock; use Psr\Log\LoggerAwareInterface; use Psr\Log\LoggerAwareTrait; use Psr\Log\NullLogger; /** * Factory provides method to create locks. * * @author Jérémy Derussé <jeremy@derusse.com> */ class Factory implements LoggerAwareInterface { use LoggerAwareTrait; private $store; public function __construct(StoreInterface $store) { $this->store = $store; $this->logger = new NullLogger(); } /** * Creates a lock for the given resource. * * @param string $resource The resource to lock * @param float|null $ttl Maximum expected lock duration in seconds * @param bool $autoRelease Whether to automatically release the lock or not when the lock instance is destroyed * * @return Lock */ public function createLock($resource, $ttl = 300.0, $autoRelease = true) { $lock = new Lock(new Key($resource), $this->store, $ttl, $autoRelease); $lock->setLogger($this->logger); return $lock; } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Exception | Folder | 0755 |
|
|
Store | Folder | 0755 |
|
|
Strategy | Folder | 0755 |
|
|
Tests | Folder | 0755 |
|
|
.gitignore | File | 34 B | 0644 |
|
CHANGELOG.md | File | 57 B | 0644 |
|
Factory.php | File | 1.27 KB | 0644 |
|
Key.php | File | 2.18 KB | 0644 |
|
LICENSE | File | 1.04 KB | 0644 |
|
Lock.php | File | 5.71 KB | 0644 |
|
LockInterface.php | File | 1.71 KB | 0644 |
|
README.md | File | 408 B | 0644 |
|
StoreInterface.php | File | 1.6 KB | 0644 |
|
composer.json | File | 850 B | 0644 |
|
phpunit.xml.dist | File | 939 B | 0644 |
|