indigophp / supervisor
Requires
- php: >=5.4.0
Requires (Dev)
- behat/behat: ~3.0.0
- guzzlehttp/guzzle: >=4.0.0
- henrikbjorn/phpspec-code-coverage: ~1.0.0
- indigophp/supervisor-configuration: ~0.1.0
- lstrojny/fxmlrpc: dev-master
- phpspec/phpspec: ~2.1.0
- rhumsaa/array_column: ~1.1.0
- zendframework/zend-xmlrpc: >=2.3.3
Suggests
- lstrojny/fxmlrpc: A modern, super fast XML/RPC client for PHP >=5.4
- zendframework/zend-xmlrpc: XmlRpc component from Zend Framework 2
This package is not auto-updated.
Last update: 2022-02-01 12:29:12 UTC
README
弃用通知
此包已移至 SupervisorPHP。
更多详情请见 http://supervisorphp.com
Indigo Supervisor
通过 XML-RPC API 管理 supervisord 的 PHP 库。
安装
通过 Composer
$ composer require indigophp/supervisor
使用
use Indigo\Supervisor\Supervisor; use Indigo\Supervisor\Connector\XmlRpc; use fXmlRpc\Client; use fXmlRpc\Transport\Guzzle4Bridge; // Pass the url and the bridge to the XmlRpc Client $client = new Client( 'http://127.0.0.1:9001/RPC2', new Guzzle4Bridge(new \GuzzleHttp\Client(['defaults' => ['auth' => ['user', '123']]])) ); // Pass the client to the connector // See the full list of connectors bellow $connector = new XmlRpc($client); $supervisor = new Supervisor($connector); // returns Process object $process = $supervisor->getProcess('test_process'); // returns array of process info $supervisor->getProcessInfo('test_process'); // same as $supervisor->stopProcess($process); $supervisor->stopProcess('test_process'); // Don't wait for process start, return immediately $supervisor->startProcess($process, false); // returns true if running // same as $process->checkState(Process::RUNNING); $process->isRunning(); // returns process name echo $process; // returns process information $process->getPayload();
目前可用的连接器
- fXmlRpc
- Zend XML-RPC
注意: fXmlRpc 可以与多个 HTTP 客户端一起使用。请参阅其网站上的列表。这是移除特定客户端连接器的原因。
认证
从 3.0.0 版本开始,setCredentials
已不再是 Connector
接口的一部分(意味着责任已被完全移除)。您必须提供您选择的 HTTP 客户端的认证数据。(例如,Guzzle 支持它)此外,fXmlRpc 实现的桥梁支持设置自定义头。
异常处理
对于每个可能的故障响应,都有一个异常。这些异常扩展了一个 通用异常,因此您可以选择捕获特定的故障或所有故障。当服务器返回未知故障时,将抛出一个通用异常实例。您可以在类中找到故障响应列表和相应的异常。
use Indigo\Supervisor\Exception\Fault; use Indigo\Supervisor\Exception\Fault\BadName; try { $supervisor->restart('process'); } catch (BadName $e) { // handle bad name error here } catch (Fault $e) { // handle any other errors here }
对于开发者: 故障异常是自动生成的,无需手动修改。
配置和事件监听
配置 和 事件 组件已被移入各自的仓库。请参阅 #24 以获取解释。
更多信息
您可以在以下位置找到 XML-RPC 文档: http://supervisord.org/api.html
注意
如果您使用 PHP XML-RPC 扩展来解析响应(标记为 实验性),则在尝试读取/跟踪进程日志时可能会出现问题。请确保清理您的日志消息。关于此问题的唯一信息是一个 评论。
您还必须确保始终使用正确的参数调用函数。Zend
连接器在传递错误参数时将触发错误。有关详细信息,请参阅此问题。(根据我对代码的检查,这在未来一段时间内可能不会改变。)其他连接器将抛出Fault
异常。
组件包
以下是一个框架特定的组件包列表
- HumusSupervisorModule (Zend Framework 2)
- Fuel Supervisor (FuelPHP 1.x)
测试
$ phpspec run
贡献
有关详细信息,请参阅CONTRIBUTING。
鸣谢
许可
MIT 许可证(MIT)。请参阅许可文件以获取更多信息。