code16 / write-to-console
一个简单的Trait,用于任何PHP类与Artisan控制台交互
v1.1
2020-06-26 12:29 UTC
Requires
- illuminate/console: 5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0
- illuminate/support: 5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0
Requires (Dev)
- orchestra/testbench: 3.5.*|3.6.*|3.7.*|3.8.*|4.*|5.*
- phpunit/phpunit: ~6.0|~7.0|^8.5
This package is auto-updated.
Last update: 2024-09-26 21:38:42 UTC
README
这是一个简单的Trait,允许第三方类向Artisan控制台输出。
当实现重型过程脚本,代码与其他应用程序部分共享,或者只是为了更容易的可测试性而独立编写在类中时,非常有用。
它简单地将info()
、error()
、comment()
、table()
和progressBar()
方法重定向到通过调用Trait的公共setConsole()
方法设置的命令对象,如果没有设置命令对象,则直接传递。
示例
在自定义脚本中使用Trait
namespace App\Tools; use Code16\WriteToConsole\WriteToConsole; class DataImporter { use WriteToConsole; public function execute() { $this->info("Import started"); $progress = $this->progressBar(100); for($x=0;$x<100;$x++) { $progress->advance(); } $this->info("Import finished"); } }
从Artisan控制台命令中调用脚本
<?php namespace App\Console\Commands; use Illuminate\Console\Command; use App\Tools\DataImporter; class DataImportsCommand extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = 'data:import'; /** * The console command description. * * @var string */ protected $description = 'Import DATA'; /** * Create a new command instance. * * @return void */ public function __construct() { parent::__construct(); } /** * Execute the console command. * * @return mixed */ public function handle() { $importer = app(DataImporter::class); $importer->setConsole($this); $importer->execute(); } }
输出文本到记录器
WriteToConsole
还接受一个Psr-3兼容的记录器作为额外的参数。因此,除了table()和progressBar()方法外,所有方法都将重定向到记录器。
public function handle()
{
$importer = app(DataImporter::class);
$importer->setConsole($this);
$logger = app(\Psr\Log\LoggerInterface::class);
$importer->setLogger($logger);
$importer->execute();
}
许可证
MIT
版权所有 © 2018 Code16.fr