Php 如何从Laravel 4中通过artisan命令调用的类方法中输出信息文本
我在主Laravel应用程序中以及通过artisan命令使用了几个类服务 我想做的是,当通过artisan调用此类类方法时,能够显示一些输出,如$this->info。。。在命令本身内部,在主应用程序中使用时,最终返回值响应、结果对象或类似对象 现在,我只是将它们用作命令,通过直接从方法中回显所需的语句来实现输出效果,但我确信这不是正确的方法,因为一旦我开始在应用程序中使用它们,我猜我的回答会被这些信息语句以及双标题或类似问题所污染,我想 我想知道怎样才能更好地处理这种情况 下面是我试图实现的代码示例:Php 如何从Laravel 4中通过artisan命令调用的类方法中输出信息文本,php,laravel-4,command,Php,Laravel 4,Command,我在主Laravel应用程序中以及通过artisan命令使用了几个类服务 我想做的是,当通过artisan调用此类类方法时,能够显示一些输出,如$this->info。。。在命令本身内部,在主应用程序中使用时,最终返回值响应、结果对象或类似对象 现在,我只是将它们用作命令,通过直接从方法中回显所需的语句来实现输出效果,但我确信这不是正确的方法,因为一旦我开始在应用程序中使用它们,我猜我的回答会被这些信息语句以及双标题或类似问题所污染,我想 我想知道怎样才能更好地处理这种情况 下面是我试图实现的代
// DoSequenceCommand
public function fire() {
MyClass::doSequence();
}
// MyClass (Facade)
public function doSequence() {
echo "Beginning Step 1\n"; // THIS I WOULD BE ABLE TO OUTPUT ONLY IF EXECUTED VIA COMMAND LINE
$s1 = $this->step1();
echo "Step 1 " . ( $s1 ? "succeded" : "failed" ) . "!\n";
echo "Beginning Step 2\n";
$s2 = $this->step2();
echo "Step 2 " . ( $s2 ? "succeded" : "failed" ) . "!\n";
return [ "s1" => $s1, "s2" => $s2];
}
你可以:
向doSequence传递一个标志,以确定它是否应该输出info语句
在DoSequence中激发事件,并在命令中侦听它们以从那里输出信息
将序列分解为多个函数,并在命令中单独调用它们以及info语句
事件选项可能是最干净的方式。Thx。我认为活动策略是最接近的,如果不是我想要的!