[英]How to output info text from class method invoked via artisan command in Laravel 4
我在Laravel主应用程序以及通过artisan
命令中使用了几个类(服务)。
我想做的是能够通过artisan
调用此类方法时显示一些输出(例如命令本身内的$this->info(...)
),并最终返回一个值(响应,结果对象或类似内容) )在主应用程序中使用它们时。
现在,我只是将它们用作命令,并通过直接从方法内部echo
我需要的语句来达到输出效果,但是我坚信这不是正确的方法,因为我猜想我一开始就在应用程序中使用它们我的响应将被这些信息语句污染(我想还有双重标题或类似问题)。
我想知道哪种更好的方法来解决这种情况。
下面是我要实现的代码示例:
// 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语句 doSequenence()
触发事件,并在您的命令中侦听事件以从那里输出信息 事件选项可能是最干净的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.