QPM全名是 Quick Process Management Framework for PHP. PHP 是强大的web开发语言,以至于大家常常忘记PHP 可以用来开发健壮的命令行(CLI)程序以至于daemon程序。 而编写daemon程序免不了与各种进程管理打交道。QPM正式为简化进程管理而开发的类库。QPM的项目地址是: https://github.com/Comos/qpm
Composer 是PHP用来管理软件包依赖关系的工具。使用Composer可以非常便利的实现依赖包的快速下载和安装。
使用以下命令,可以快速安装Composer:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
也可参考:Composer安装指南。
使用Composer的项目,在项目目录下通常有composer.json文件。
可参考如下配置。
{
"require": {
"monolog/monolog": "1.0.*",
"comos/qpm":"0.3.*"
}
}
其中
"comos/qpm":"0.3.*"
表示依赖 comos/qpm 0.3.x版本。
准备好composer.json, 执行 composer install 后,即可在 vendor/comos 找到qpm
运行前,脚本须先加载compser autoload.php文件。
例 test.php:
<?php
require __DIR__.'/vendor/autoload.php';
$pid = qpm\process\Process::current()->getPid();
echo "PID: $pid\n";
执行 php test.php,终端输出 PID: 11210 (进程号)。
例如 0.3.0版本。
tar zxvf 0.3.0.tar.gz
由于qpm遵循psr-4,需要依赖autoloading机制加载类,如果项目没有注册适合的autoloader,用户需要自行实现autoloader。
例如 test1.php:
<?php
spl_autoload_register(function ($class) {
$prefix = 'qpm\\';
$baseDir = __DIR__ . '/qpm-0.3.0/library';
$len = strlen($prefix);
if (strncmp($prefix, $class, $len) !== 0) {
return;
}
$relativeClass = substr($class, $len);
$file = $baseDir . str_replace('\\', '/', $relativeClass) . '.php';
if (file_exists($file)) {
require $file;
}
});
$pid = qpm\process\Process::current()->getPid();
echo "PID: $pid\n";
执行 php test1.php,终端输出 PID: 11210 (进程号)。