symfonyでバッチ処理を行う方法。
手順
symfonyコマンドでバッチ処理用コントローラを生成する
symfony init-batch テンプレート名 バッチ名 アプリケーション名 [環境名 [デバッグオプション]]
例)symfony init-batch default updateInfo idol-mile frontend prod false
/project/batch/配下に生成されたコントローラの一部を書き換える。 上記例の場合は/project/batch/updateInfo.php
●updateInfo.php
<?php
/**
* updateInfo batch script
*
* Here goes a brief description of the purpose of the batch script
*
* @package idol-mile
* @subpackage batch
* @version $Id$
*/
define('SF_ROOT_DIR', realpath(dirname(__file__).'/..'));
define('SF_APP', $argv[1); ←コマンドラインからアプリケーション名を指定
define('SF_ENVIRONMENT', 'prod');
define('SF_DEBUG', 1);
require_once(SF_ROOT_DIR.DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.SF_APP.DIRECTORY_SE PARATOR.'config'.DIRECTORY_SEPARATOR.'config.php');
// initialize database manager
//↓DBに接続する場合はコメントアウトを外す
$databaseManager = new sfDatabaseManager();
$databaseManager->initialize();
// batch process here
//ここに処理を書いても良いが、別クラスを呼ぶようにした方が良さそう
$obj = new $argv[2]; //←/lib/コマンドラインから実行するクラス名を指定
$obj->execute();
/lib/の下に実行する処理を記述したクラスファイルを設置する
●batUpdateInfoAction.class.php
class batUpdateInfoAction extends BaseUserAction
{
public function execute()
{
//サイトID取得
$strSiteId = parent::getGlobalSiteId();
$arrSearch = array();
$arrSearch['maker_id'] = '255';
$arrObjMakerMst = MakerMstPeer::doSelectBySearchArr($arrSearch);
print_r($arrObjMakerStockMst);
}
}

