unreal4u / pid
此包已被弃用且不再维护。未建议替代包。
此类是用于操作系统和PID文件的包装器
v2.0.6
2015-04-02 09:33 UTC
Requires
- php: >=5.3.0
- ext-posix: *
Requires (Dev)
- mikey179/vfsstream: @stable
- phpunit/phpunit: @stable
README
pid.php
致谢
此类由unreal4u(Camilo Sperberg)制作。 unreal4u.com/.
关于此类
- 可用于验证进程是否已在运行
- 平台独立:可用于Windows或Linux。在两者中,它们将调用特定于操作系统的函数来找出进程是否正在运行
- 它不会检测之前的致命错误,但如果从创建以来已经过去了一段时间,则可以省略之前的PID文件
详细描述
此包将检查是否存在特定的PID文件,并根据此进行检查
创建PID文件。如果它已存在,则要求操作系统检查它是否仍然是一个正在运行的进程。如果由于任何原因,操作系统仍然认为进程仍在运行且时间过长,则类可以覆盖之前的PID文件(从而启动一个新实例)。当对象被销毁时,相应的PID文件也将被删除。
基本用法
include('src/unreal4u/pid.php'); try { $pid = new unreal4u\pid(); } catch (\Exception $e) { echo $e->getMessage(); } if ($pid->isAlreadyRunning) { echo 'Your process is already running'; }
$pid->pid
将显示PID号码。- 请参阅示例以获取更多选项和高级用法
- 有一个注意事项:如果您在类的方法内使用此类,请确保在应该执行时执行析构函数:变量在方法执行完成后立即销毁,因此PID也会被销毁。为了确保这一点,请将PID类分配给类内的对象,这样,每当该对象被销毁时,此类也将被销毁。
Composer
此类支持(最好是)Composer安装。只需将以下部分添加到您的composer.json文件中
{ "require": { "unreal4u/pid": "@stable" } }
现在您可以通过执行以下操作来实例化一个新的pid类
require('vendor/autoload.php'); try { $pid = new unreal4u\pid(); } catch (\Exception $e) { // Do something }
待定
- 更好的(更彻底的)PHPUnit测试覆盖率。
- 在Windows机器上彻底测试此类,在此期间已对许多UNIX改进。
版本历史
- 1.0 :
- 初始版本
- 1.1:
- 支持Windows PID检查
- 1.3:
- PHPUnit测试
- 文档改进(实际上创建了此README)
- 更多示例
- 1.3.1:
- 脚本现在设置最大执行时间
- 1.4.0:
- 类现在与composer兼容
- 1.4.2:
- 更好的文档
- 更好的代码覆盖率
- 1.4.5:
- Travis-CI支持
- 开始弃用旧编码标准
- 2.0.0:
- 类的基本功能的大幅重写
- 现在可以按数组传递变量,而不是按变量传递
- 类现在在发生错误时抛出(更多)异常
- 关于新功能的新测试
- 向后兼容性更改
- 类在失败时会抛出异常,而不是静默失败
- 函数
getTSpidFile()
重命名为getTimestampPidFile()
联系作者
- Twitter: @unreal4u
- 网站: http://unreal4u.com/
- Github: http://www.github.com/unreal4u
- Packagist: [https://packagist.org.cn/users/unreal4u/]