net_bazzline/component_lock

2.3.0 2017-01-26 18:38 UTC

This package is auto-updated.

Last update: 2024-09-16 20:17:13 UTC


README

当前主分支的构建状态由 Travis CI 跟踪:构建状态

Latest stable

scrutinizer 状态:代码质量

versioneye 状态:依赖状态

最低PHP版本:最低PHP版本

查看 openhub.net

一般

此组件提供了 LockInterface 以及一个 LockAwareInterface。它包含两个 LockInterface 的实现。

您可以使用此接口来锁定类或进程,以防止对象中的更改(因此您可以冻结/锁定类以设置属性)或锁定现有的进程(如 cronjob)以防止重复执行。

此组件是通过将 PHP_Bazzline_Utility 存储库拆分而成的。

实现

有两个实现。一个是 FileNameLock,另一个是 RuntimeLock

RuntimeLock

RuntimeLock 可以用于锁定实例以防止修改。如果您在每个设置器方法中实现一个检查,您可以轻松创建一个实例(例如通过工厂)并在之后锁定它以防止修改。

FileNameLock

FileNameLock 可以用于锁定类以防止多次实例化。如果您在 cronjob 或应单独运行的业务流程中实现此功能,则非常有用。

FileHandlerLock

FileHandlerLock 可以用于使用 php 的 flock 功能锁定文件。

未来改进

  • 实现“等待”,如 此处 实现。
  • 查看 semaphore 项目以查看是否可以合并。
  • 查看是否所有项目都可以协同工作。
  • 查看 havvg/lock

历史

  • 即将推出
    • @todo
  • 2.3.0 - 发布于 2017-01-26
    • 更新最低要求为 php 5.6
  • 2.2.1 - 发布于 2016-06-29
    • 添加了对 php 7.0 的集成测试
    • 添加了链接到
      • 最新的稳定版本
      • scrutinizer代码质量
      • versioneye依赖状态
    • 迁移到psr-4自动加载
    • 移除了针对php 5.3.3的集成测试
  • 2.2.0 - 发布于2016-06-28
    • 添加了phpunit 5.4作为依赖(如果PHP版本匹配的话)
    • 根据特性请求,将进程ID添加到锁文件中
    • 更新了依赖项
  • 2.1.0 - 发布于2015-09-10
    • FileHandlerLock中实现了对SplFileObject的支持
  • 2.0.1 - 发布于2015-09-09
    • 稳定了依赖项
  • 2.0.0 - 发布于2015-09-08
    • 添加了FileHandlerLock
    • FileLock重命名为FileNameLock
    • 在"LockInterface"中将"getName"重命名为"getResource",将"setName"重命名为"setResource"
  • 1.0.3
    • 添加了LockDependentInterface
  • 1.0.2
    • FileNameLockRuntimeLock添加了带可选参数$name的构造函数
  • 1.0.1
    • 切换到LGPLv3
  • 1.0.0
    • FileLockRuntimeLock添加了实现
    • 使用unittest覆盖了实现
    • 完成了LockInterfaceLockAwareInterface

结语

如果你喜欢它,请给它加星。如果你需要它,请添加问题。如果你喜欢它,请拉取补丁。如果你使用了它,请写一篇博客。如果你爱它,请捐献一些东西 :-]。