2013-12-16 68 views
0

命令時,根據本thread調用來自控制器

如何使用控制檯日誌我所做的代碼從控制器調用命令

use Symfony\Component\Console\Input\ArgvInput; 
    use Symfony\Component\Console\Output\ConsoleOutput; 
    . 
    . 
    public function myAction() { 
     $command = $this->get('MyCommandService'); 

     $input = new ArgvInput(array('arg1'=> 'value')); 
     $output = new ConsoleOutput(); 
     $command->run($input, $output); 
    } 

我可以得到$輸出,那麼,

我想在控制器中使用控制檯輸出

因此,我檢查了console output class方法。

我猜getStream()是有用的東西,所以我試試這個

$output->getStream() 

,但它只是返回流,,

如何使用控制檯登錄控制器?

回答

0

如果您熟悉自定義數據流,你可以創建自己: php.net/stream_wrapper_register

ConsoleOutput延伸StreamOutput延伸Output工具OutputInterface

Command要求後者作爲輸出參數。

StreamOutput需要一個流作爲它的第一個參數,你在這裏添加你自己的流。運行命令並從您的流中讀取。

http://api.symfony.com/2.0/Symfony/Component/Console/Output/StreamOutput.html

一種更簡單的解決方案可以是延長Output類並實現doWrite方法將數據發送回給控制器,但第一溶液聲音等更多的樂趣。