6月 09
27.バッチ処理
では最後、バッチを使ってデータを更新したり、削除したりします。
バッチの処理は
/app/venders/shells/
の中にファイルを作ります。今回はmembersテーブルのデータを処理するので、
/app/venders/shells/member.php
とします。
で、中に以下のように書きます。
<?php
class MemberShell extends Shell {
var $uses = array('Member');
function main() {
$this_day = date('Y-m-d h:i:s', strtotime('-20 day'));
//メールアドレスにgを含むデータを削除、関連テーブルからも
$this->Member->deleteAll(
array('Member.email LIKE' => "%g%"), true, false
);
}
}
?>
$uses で使うモデルを指定しています。
削除ではなく、更新をする場合は、
$this->Member->updateAll(
array('Member.birthday' => "'1970-03-15'"),
array('Member.created <=' => "$this_day")
);
こんな感じになります。
このファイルを用意しておいて、コンソールから、
cake member
と実行します。
これにパスを通すなりなんなりして、crontabにセットすればOKです。
以上で今回作ったシステムのまとめは終わりですが、やってみて思うのは、なにやらこれは、パズルを組みあわせるような、プラモデルの部品を組み立てるような作業だな、ということです。
必要なのはCakePHPというシステムのパーツと、その他HTMLやCSSの知識、javascript(というか今回はjqueryの)知識、SQLの知識、であって、なんというかPHPでプログラムを組んでいる、という感じは全くしません。
フレームワークを使ってシステムを作ることはプログラミングではない、なんかもっと別の物である、という気がします。
[おわり]
