symfony1.1のtaskの作り方・使い方

symfony1.0ではinit-batchでCLI処理を作っていましたが、1.1ではtaskというのが導入されたようです。ブログで書かれていたチュートリアルを見ながら試してみます。バージョン1.1のCookbookにもこの解説は入るようです。

symfonyコマンドが元々呼び出せるタスク群(symfony generate:moduleとか)と同じように自分の作ったタスクを登録し、symfonyコマンドから呼び出すことができます。

$ symfony generate:task akky:hello-world

これで、akky:hello-worldという新タスクが登録されます。

symfonyコマンドを実行すると、タスクの一覧にもこのakky:hello-worldが出てきます。実行も既存タスクと同じで、

$ symfony akky:hello-world

このタスクの本体は、lib/task/akkyHelloworldTask.class.php にできています。

この生成されたコードの中に、タスクのヘルプを書いたりタスクが受け取れるパラメータを指定したり、そしてタスクの本体処理を書けます。

protected function execute($arguments = array(), $options = array())
{
// add code here
echo 'hello, world';
}

これで実行すると、symfonyコマンドからhello, worldを出力させることができました。

パラメータの受け取り方の詳細や、タスクから他のタスクを呼ぶ方法、環境に応じた処理の切り分け方法などは、元のブログ記事をどうぞ。

あと、generate:taskで作成はわかったけど、作ったタスクを消すにはどうするの、と該当するsymfonyコマンドが見当たらなくて迷ったのですけど、taskファイルを消してしまえばいいみたいです。