トップ » サービス » 技術情報 » symfony » その他 » バッチ処理の実行方法
symfony

バッチ処理の実行方法 - 記述日2008/3/14 - 綿引


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);
    }
}


symfony 最新記事

↑Pagetop