hhpack/process

为 Hack 服务的进程实用库

维护者

详细信息

github.com/hhpack/process

源代码

问题

安装: 244

依赖项: 1

建议者: 0

安全: 0

星级: 4

关注者: 1

分支: 0

开放问题: 2

语言:Shell

1.6.0 2019-04-15 03:39 UTC

README

Latest Stable Version CircleCI Dependency Status License

基本用法

启动进程,以下示例等待其结束。
stdout 和 stderr 的信息输出到缓冲区。

use HHPack\Process;

<<__EntryPoint>>
async function main() : Awaitable<noreturn>
{
  $result = await Process\exec('hh_client restart');
  $result->stdout()->display();
  $result->stderr()->display();

  $result = await Process\exec('hh_client check --json');
  $result->display();

  exit(0);
}

脚本执行

如果您想运行脚本,可以在 execFile 函数中运行。

use HHPack\Process;

<<__EntryPoint>>
async function main() : Awaitable<noreturn>
{
  $result = await Process\execFile('/path/to/example.hh', [ 'a', 'b' ]);
  $result->stdout()->display();
  $result->stderr()->display();

  exit(0);
}

手动控制进程

您可以使用 spawn 函数生成新的子进程。
要等待生成的子进程完成,请使用 wait 方法。

use HHPack\Process;
use HHPack\Process\ProcessOptions;

<<__EntryPoint>>
async function pipe_example() : Awaitable<noreturn>
{
  $options = new ProcessOptions();
  $options->stdout(new Stdout());
  $options->stderr(new Stderr());

  using ($p = Process\spawn('hh_client restart', [], $options)) {
    await $p->wait();
  }

  exit(0);
}

运行测试

您可以使用以下命令运行测试。

composer install
composer test