2012-08-17 160 views
0

運行symfony的動作我創建了一個自定義命令:與自定義命令

class CrawlCommand extends ContainerAwareCommand{ 

    protected function configure(){ 
     $this->setName('crawler:crawl') 
      ->setDescription('Command for crawling content');  
    } 

    protected function execute(InputInterface $input, OutputInterface $output){ 
     $msg = 'hello'; 
     $output->writeln($msg); 
    } 
} 

請告訴我,我該怎麼做一個動作中執行的功能?行動電話CrawlerBundle:Index:index。沒有服務,只需運行瀏覽器等操作即可。

+0

你能解釋一下你的最終目標是什麼嗎? – 2012-08-17 12:44:45

回答

1

如果你想直接從命令調用動作 - 這意味着它是錯誤的。在控制器中,您應該儘可能少地實施邏輯,您應該創建服務並將邏輯放在那裏。

有幾個原因,例如。通過這種方式,單元測試更容易,而且代碼更加清晰易讀。另外使用服務在您的CrawlCommand案例中非常簡單。