项目作者: chongyi

项目描述 :
轻松调用 shell 命令,同时实现双向进程管道的读写操作,以实现更为丰富的进程调用功能。
高级语言: PHP
项目地址: git://github.com/chongyi/Actuator.git
创建时间: 2015-10-18T14:35:40Z
项目社区:https://github.com/chongyi/Actuator

开源协议:MIT License

下载


Actuator 执行器

轻松调用 shell 命令,同时实现双向进程管道的读写操作,以实现更为丰富的进程调用功能。

安装

通过 Composer 安装

composer require chongyi/actuator dev-master

使用

基本示例:

  1. use Dybasedev\Actuator\Actuator;
  2. // 创建执行器实例
  3. $actuator = new Actuator;
  4. // 创建一个进程
  5. $process = $actuator->createProcess('php -i');
  6. // 从管道中读取进程输出的数据
  7. while (!$process->getPipeManager()[1]->eof()) {
  8. print $process->getPipeManager()[1]->read(64);
  9. }

管道的双向读写:

  1. use Dybasedev\Actuator\Actuator;
  2. $actuator = new Actuator;
  3. $printer = $actuator->createProcess('php -i');
  4. $grep = $actuator->createProcess('grep extension');
  5. while (!$process->getPipeManager()[1]->eof()) {
  6. // 从管道中读取进程输出的数据,同时向另一个进程的管道写入数据
  7. $grep->getPipeManager()[0]->write($process->getPipeManager()[1]->read(64));
  8. }
  9. // 关闭 grep 进程的写入管道
  10. $grep->getPipeManager()[0]->close();
  11. // 从 grep 进程管道读取搜索结果
  12. while (!$grep->getPipeManager()[1]->eof()) {
  13. print $grep->getPipeManager()[1]->read(64);
  14. }

上述例子等同于执行命令 php -i|grep 。对于更复杂的管道读写操作可以用更为灵活的方式进行。

计划更新

下一步打算利用协程概念实现更为强大的功能,敬请期待。