6月 09

27.バッチ処理

go @ 5:33 AM

では最後、バッチを使ってデータを更新したり、削除したりします。
バッチの処理は
/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でプログラムを組んでいる、という感じは全くしません。
フレームワークを使ってシステムを作ることはプログラミングではない、なんかもっと別の物である、という気がします。

[おわり]

Comments are closed.

here comes