Web Tech Log by 1KB

Icon

Web開発、Webデザイン、SEO、携帯コンテンツなどWebにまつわるテクノロジーを追っかけるブログ。旧名「Web屋に復帰した人間のリハビリ日記」

CakePHP 1.2 シェル機能でバッチ処理やコマンドをサーバー側で実行する

CakePHPは自身のフレームワークを活用したコードをサーバー側で実行するシェル機能があります。ブラウザのHTTPリクエストに頼らず実行でき、バッチ処理などに活用できます。忘れないうちにメモっておこう。

/path/to/app/vendors/shells/batch.php
にファイルを作る。「batch.php」としたが名前は何でも良い。

<?php
class BatchShell extends Shell {
    var $uses = array('Model');//モデルを使用する場合指定しておく
    function main() {
        //ここにコードを書く
    }
}
?>

デフォルトでは、main()メソッドが実行されます。

次にシェルスクリプトを用意。
/path/to/sh/batch.sh

#!/bin/sh
/usr/local/bin/php /path/to/cake/console/cake.php batch -app /path/to/app

シェルスクリプトはあらかじめ実行権限を付けておく。
スクリプト中のパスはサーバーに合わせて適時変更します。

あとはLinuxの場合、cronで実行するように設定する。
スクリプト中の以下のコマンドを直接cronで設定しても動くと思う。

/usr/local/bin/php /path/to/cake/console/cake.php batch -app /path/to/app

参考

Category: cakephp

Tagged: ,

Leave a Reply

킹ēǂ݂uOp[c