symfonyでタスク作成

試したバージョン
symfony1.2.5

symfony generate:task [タスク名]

/lib/task 下に[タスク名]Task.class.php ファイルが生成される

実行方法

symfony [タスク名] --csv="/opt/up.csv" > ./task.log

実行は、プロジェクトのルートで行わないとダメ
/lib/task 下でやろうもんなら、
Task "xxx" is not defined.
なんて怒られる。


configureに、引数オプションを追加しておいて、実行時に渡せる
[タスク名]Task.class.php

  protected function configure()
  {
    $this->addOptions(array(
      new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name'),
      new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', 'dev'),
      new sfCommandOption('connection', null, sfCommandOption::PARAMETER_REQUIRED, 'The connection name', 'propel'),
      new sfCommandOption('csv', null, sfCommandOption::PARAMETER_REQUIRED, 'csv file path'),
      // add your own options here
    ));

    $this->namespace        = '';
    $this->name             = 'insertKizai';
    $this->briefDescription = '';
    $this->detailedDescription = <<<EOF
The [insertKizai|INFO] task does things.
Call it with:

  [php symfony insertKizai|INFO]
EOF;
  }