Php 如何从Laravel 4中通过artisan命令调用的类方法中输出信息文本

Php 如何从Laravel 4中通过artisan命令调用的类方法中输出信息文本,php,laravel-4,command,Php,Laravel 4,Command,我在主Laravel应用程序中以及通过artisan命令使用了几个类服务 我想做的是,当通过artisan调用此类类方法时,能够显示一些输出,如$this->info。。。在命令本身内部,在主应用程序中使用时,最终返回值响应、结果对象或类似对象 现在,我只是将它们用作命令,通过直接从方法中回显所需的语句来实现输出效果,但我确信这不是正确的方法,因为一旦我开始在应用程序中使用它们,我猜我的回答会被这些信息语句以及双标题或类似问题所污染,我想 我想知道怎样才能更好地处理这种情况 下面是我试图实现的代

我在主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。我认为活动策略是最接近的,如果不是我想要的!