Zend Framework で作ってるものがあって、ちょっとバッチ処理用のスクリプト書きたいなーって思って調べたのでメモ。
php - Running a Zend Framework action from command line - Stack Overflow
やることは単純で、public/index.php と同じ様に、 APPLICATION_PATH , APPLICATION_ENV を読み込み、 Zend_Application を new するだけで良い。
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH',
realpath(dirname(__FILE__) . '/../application'));
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV',
(getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
: 'production'));
require_once 'Zend/Application.php';
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$hogem = new Application_Model_HogesMapper();
$entries = $hogem->fetchAll();
if ($entries) {
foreach ($entries as $entry) {
$entry['status'] = '1';
$entry['update_date'] = date('Y-m-d H:i:s');
$hogem->update($entry);
}
}
今回はDBからデータをひっぱってきてカラムの値を2つほど変えてアップデートしています。
思ったより楽でした。
コメント