ConsoleAdditions
1.0.0
使 Symfony Console 的使用变得更加出色的工具。
该软件包可在 Packagist 上找到:
composer require efrane/console-additions
Batch
此类提供 Symfony 控制台应用程序的批处理命令。当将部署或更新脚本编写为控制台命令(按设定顺序调用许多其他命令,例如缓存更新、数据库迁移等)时,这非常有用。
Command::execute
中的用法:
EFrane ConsoleAdditions Command Batch:: create ( $ this -> getApplication (), $ output )
-> add ( ' my:command --with-option ' )
-> add ( ' my:other:command for-this-input ' )
-> run ();
外壳命令
批处理可以是一组相互交织的控制台应用程序和系统 shell 命令。这是一项高级功能,需要symfony/process
包作为附加依赖项。
由于 shell 命令在内部创建Process
对象,因此Batch
API 公开了用于添加 shell 命令的方法:
addShell
使用给定配置添加进程(有关详细信息,请参阅 Batch::addShell)addShellCb(string $cmd, callable $cb)
创建进程并将其传递给回调以进行进一步配置。当所需的命令需要某种过程管道时,这尤其有用。消除错误
可以运行一批命令而不引发异常。
该软件包提供额外的控制台输出接口:
FileOutput
FileOutputs 将所有数据写入文件流并具有具体的风格:
NativeFileOutput
使用本机 PHP 文件流功能,因此对于本地目标来说是一个不错的选择,并且根据您的服务器 PHP 流协议配置,它甚至可能足以满足远程目标。
另一方面, FlysystemFileOutput
将流数据传递到league/flysystem
适配器,从而能够将该数据发送到任何 Flysystem 支持的目的地,即 S3、Dropbox、FTP 等。
MultiplexedOutput
MultiplexedOutput 可用于将多个输出接口组合为一个输出接口。这是文件输出的逻辑伴侣,因为通常人们可能希望将输出发送到用户的控制台和其他一些目的地。内部的简单设置可能如下所示:
class Command extends Symfony Component Console Command {
public function execute ( InputInterface $ input , OutputInterface $ output ) {
// send output to multiple destinations
$ output = new EFrane ConsoleAdditions Output MultiplexedOutput ([
$ output ,
new EFrane ConsoleAdditions Output NativeFileOutput ( ' command.log ' )
]);
// normal console command
}
}