March 1, 2010
[Doctrine] Baseクラスのオートロードに失敗

実行したところ
Fatal error: Class 'BaseUser' not found in /home/sites/doctrine.gomo.jp/web/models/User.php on line 13
Baseクラスの読み込みに失敗しました。動かすには
$manager->setAttribute(Doctrine::ATTR_MODEL_LOADING, Doctrine::MODEL_LOADING_CONSERVATIVE);
ATTR_MODEL_LOADINGをMODEL_LOADING_CONSERVATIVEに設定してやると動くようになります。デフォルトではMODEL_LOADING_AGGRESSIVEになってます。

MODEL_LOADING_CONSERVATIVEはクラス名とそのパスを保持していて、そのクラスが必要な時に読み込まれるいわゆるLasy loadです。その際指定したフォルダにフォルダがあった場合はしたの階層もリスト化します。

対してMODEL_LOADING_AGGRESSIVEはDoctrine::loadModelsで指定したフォルダにあるクラスを一気にrequireします。指定したフォルダの直下のクラスしか読み込まないようです。

Posted via web from 原宿工業大学 | Comment »