0

カスタムコマンドを作成しました:

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。サービスがなければ、ブラウザのようなアクションを実行するだけです。

4

1 に答える 1

0

コマンドから直接アクションを呼び出したい場合-それは何かが間違っていることを意味します。コントローラでは、できるだけ少ないロジックを実装する必要があります。サービスを作成し、そこにロジックを配置する必要があります。

それにはいくつかの理由があります。そうすることで、単体テストがより簡単になり、はるかに明確で読みやすいコードが得られます。さらに、CrawlCommandの場合、サービスの使用は非常に簡単です。

于 2012-08-17T12:54:27.083 に答える