Locks
in package
FinalYes
Фасад-фабрика блокировок: короткие конструкторы {@see LockFactory} над встроенными хранилищами.
$factory = Locks::flock('/var/lock'); // межпроцессные файловые блокировки
$factory = Locks::cache($psr16Cache); // распределённые через кэш с TTL
$factory = Locks::inMemory(); // в пределах процесса / для тестов
$factory->create('order:42', ttlSeconds: 30)->synchronized(fn () => process());
Table of Contents
Methods
- cache() : LockFactory
- Распределённые блокировки поверх PSR-16 кэша с автоистечением по TTL.
- flock() : LockFactory
- Межпроцессные файловые блокировки на основе `flock`.
- forStore() : LockFactory
- Фабрика над произвольным хранилищем блокировок.
- inMemory() : LockFactory
- Блокировки в памяти процесса (атомарны в пределах процесса; для тестов и координации внутри одного запроса).
Methods
cache()
Распределённые блокировки поверх PSR-16 кэша с автоистечением по TTL.
public
static cache(CacheInterface $cache) : LockFactory
Parameters
- $cache : CacheInterface
-
PSR-16 кэш-бэкенд
Return values
LockFactory —фабрика над CacheLockStore
flock()
Межпроцессные файловые блокировки на основе `flock`.
public
static flock(string $directory) : LockFactory
Parameters
- $directory : string
-
каталог для lock-файлов
Return values
LockFactory —фабрика над FlockStore
forStore()
Фабрика над произвольным хранилищем блокировок.
public
static forStore(LockStore $store) : LockFactory
Parameters
- $store : LockStore
-
хранилище блокировок
Return values
LockFactory —фабрика над переданным хранилищем
inMemory()
Блокировки в памяти процесса (атомарны в пределах процесса; для тестов и координации внутри одного запроса).
public
static inMemory([ClockInterface|null $clock = null ]) : LockFactory
Parameters
- $clock : ClockInterface|null = null
-
часы для TTL;
null— системные
Return values
LockFactory —фабрика над InMemoryStore