provision-ops/power-process

更强大的进程组件。

1.4.0-rc4 2020-03-19 00:47 UTC

README

此库提供了升级版的Symfony Process组件。

它为希望向用户展示正在运行的过程及其输出的应用程序提供了一个更友好的界面。

此库被Provision Yaml Tests使用,并将用于Provision CLI项目。

Symfony 4

Symfony 4中,Symfony Process组件的API参数类型提示与Symfony 3不同。这是由于Symfony 4需要PHP 7.1.3或更高版本,它支持一些在早期PHP版本中不允许的类型提示。对于大多数客户端来说,这种差异很小,但对于继承自Process的代码来说,可能会出现问题,因为它不能同时与Symfony 3和Symfony 4的类型提示兼容。

注意:将发布一个与Symfony 4兼容的组件。

非常感谢@g1a和整合团队为这段文本和设置基于Process组件的组件的例子。

请参考https://github.com/consolidation/site-process/compare/2.x...master,了解维护两个分支的示例。

使用方法

使用方法扩展了Symfony Process组件。

请参阅demo.php以获取简单示例

// Include autoloader
include('vendor/autoload.php');

// PowerProcess needs IO.
$input = new \Symfony\Component\Console\Input\ArgvInput($argv);
$output = new \Symfony\Component\Console\Output\ConsoleOutput();

// Replace Style with your own to change the output style.
$io = new ProvisionOps\Tools\Style($input, $output);

// Run any command.
$command = 'ls -la';
$process = new ProvisionOps\Tools\PowerProcess($command, $io);
$process->run();

然后运行该文件

php demo.php

您将看到命令以如下方式运行

Demo.php Output

另一个示例

文件`run'是任何命令的包装器。

尝试

./run ping packagist.org -c 5
./run git status
./run rm -rf /

简单。

功能

该项目正在从Provision CLI中提取。它将快速增长和变化。

计划的功能

  • 格式化输出,以便于阅读。
  • 自动将输出管道传输到文件,并提供了目标路径选项。(这已在Provision CLI中完成)
  • 允许轻松静音输出。
  • 添加钩子,允许其他插件对进程事件做出反应。