dev-master 2015-09-27 12:09 UTC

This package is not auto-updated.

Last update: 2024-09-14 17:37:33 UTC


README

Build Status Test Coverage Scrutinizer Code Quality Code Climate

Latest Stable Version Latest Unstable Version Dependency Status License Total Downloads

Documentation Status Documentation Status

安装

要在项目中使用Composer安装Lock库,首先将以下内容添加到您的composer.json配置文件中。

{
    "require": {
        "gielfeldt/lock": "~1.0"
    }
}

然后运行Composer的安装或更新命令以完成安装。有关如何使用Composer的更多信息,请访问Composer主页

Lock

此锁处理程序...

动机/目标

  1. "简单" API (™)
  2. 分离存储逻辑以避免样板代码
  3. 确保在销毁锁时发布
  4. 可选地跨请求持久化
  5. 在例如发布上的事件处理器
  6. 强制发布(由非所有者)

示例1 - 使用Lock库

namespace Gielfeldt\Lock\Example;

require 'vendor/autoload.php';

use Gielfeldt\Lock;

$lockService = new Lock\LockService([
    'storage' => new Lock\Storage\Memory(),
]);

print "'mylock' is locked: " . $lockService->isLocked('mylock') . "\n";
print "Locking 'mylock'\n";

$lock = $lockService->acquire('mylock');
print "'mylock' is locked: " . $lockService->isLocked('mylock') . "\n";

$lock->bind('release', function ($lock) {
    print "RELEASE EVENT 2: " . $lock->getName() . "\n";
});

$lock->release();
print "'mylock' is locked: " . $lockService->isLocked('mylock') . "\n";

更多示例请参阅examples/文件夹。

功能

  • 使用任意存储后端进行锁操作
  • 在脚本之间持久化锁
  • 确保在作用域结束时释放锁
  • 在锁释放时附加自定义事件处理器

注意事项

  1. 可能有很多。