ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)

2007年~2011年ごろまで はてなダイアリー に書いてた記事を引っ越してきました。

Helper中などでModel(ActiveRecord)クラスを手動でrequireしたい時

手動で、特定のモデルを取り込みたい(例えばControllerとは関係のないテーブルのActiveRecordを使いたい)時は、Ak::import()が使えます。引数指定も柔軟で、二つ以上のモデルを取り込みたい(requireした)場合は、配列で見たまんま渡しても良いですし、内部実装はfunc_get_args()使ってくれてますので怠惰に可変長引数で渡しちゃっても平気です。

Ak::import('User');
Ak::import(array('User', 'Group'));
Ak::import('User', 'Group');

$User =& new User();

ちなみにAkActionController::instantiateModelClass()は使わない方が良いかも・・・。中で勝手にfind()のidとか取得したりしてごちゃごちゃしてくれちゃうので、自分のようにアンチActiveRecord派は精神衛生上悪いから・・・。

そう。ようやく何で苛つくのか分かった。自分、ActiveRecordに馴染めないオールドタイプだからだ・・・。
ええ、1/3倍の速さでしょうね。