Doctrineのモデルクラス接頭辞に"_"を入れると面倒
Doctrineでは、managerやconnectionの属性としてDoctrine_Core::ATTR_MODEL_CLASS_PREFIXに接頭辞を設定することができます。
また、Doctrine_CLIでyamlからモデルクラスを生成する場合は$config['generate_models_options']['classPrefix']を設定することで接頭辞を持ったモデルクラスを生成します。
で、この接頭辞に"_"(アンダーバー)を含めてしまうとクラスのロードに失敗するという現象に遭遇しました。
早速Doctrine_Core::modelsAutoloadを覗いてみると
<?php // line.1158 $class = self::$_modelsDirectory . DIRECTORY_SEPARATOR . str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
というように、問答無用でクラス名の_をディレクトリセパレータに置換してファイルパスに使っています。
Doctrine_CLIでモデルクラスを生成する場合にはデフォルトではこのような生成はされません。このような生成がされるのは$config['generate_models_options']['pearStyle']=trueとした時のみです。
ということで$config['generate_models_options']['pearStyle']=trueにして生成すると余計なディレクトリわけが出てきてしまいますが、問題なくロードされるようになりました。