Laravel/Lumen decorator for symfony/lock component
- Flock
- Memcached
- Redis
- Semaphore
- Combined
- RetryTillSave
-
composer require mingalevme/illuminate-lock
. -
Register the appropriate service provider
\Mingalevme\Illuminate\Lock\LaravelLockServiceProvider::class
or\Mingalevme\Illuminate\Lock\LumenLockServiceProvider::class
. -
(Optionally) Add alias to your bootstrap file:
'Lock' => Mingalevme\Illuminate\Lock\Facades\Lock::class,
- (Optionally) For Larvel run
php artisan vendor:publish --provider="Mingalevme\Illuminate\Lock\LaravelLockServiceProvider" --tag="config"
to publish the config file.
-
(Optionally) For Lumen copy
/vendor/mingalevme/illuminate-lock/config/lock.php
to/config/lock.php
. -
Now you are able to use the library:
<?php
use Mingalevme\Illuminate\Lock\Facades\Lock;
$lock = Lock::createLock('resource-id');
if ($lock->acquire()) {
echo "Resource has been locked";
} else {
echo "Could not get lock";
}
or
<?php
use Mingalevme\Illuminate\Lock\Facades\Lock;
$lock = Lock::store('redis')->createLock('resource-id');
if ($lock->acquire()) {
echo "Resource has been locked";
} else {
echo "Could not get lock";
}