devshop/power-process

增强的 Symfony Process 组件。

1.8.0-beta3 2023-02-01 03:24 UTC

This package is auto-updated.

Last update: 2024-09-04 12:07:22 UTC


README

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

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

此库由 Provision Yaml 测试使用,并将用于 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 DevShop\Component\PowerProcess\PowerProcessStyle($input, $output);

// Run any command.
$command = 'ls -la';
$process = new DevShop\Component\PowerProcess\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 中已经完成)
  • 允许轻松静音输出。
  • 添加钩子,允许其他插件对进程事件做出反应。