すぐに本番環境で使用を開始するため、Zend Framework について自分自身を文書化し始めました。モデルを使用して作業を開始するまで、すべてが正常に機能していました:)。
Zend の推奨に基づくモデルのデフォルトの場所はapplication/models/DbTable
、すべてのモデルが投入される場所ですApplication_Model_DbTable_Actors
。私にとって、これはモデルの非常に長い名前であり、使いやすいものではありません。
取得したいディレクトリ構造は次のようになります。
application/
models/
actors/
ActorsMapper.php
Actor.php
books/
BooksMapper.php
Book.php
等
したがって、すべてのモデルはディレクトリの下に存在しますがmodels
、独自のディレクトリにグループ化されます。
各クラスの命名は or にする必要がありますActorsMapper
(どちらもorActor
を拡張します)。Zend_Db_Table
Zend_Db_Row
私のコントローラーで、次のようなものを使用してモデルをインスタンス化すると$actors = new ActorsMapper()
、 が得られるという事実を認識しFatal error: Class not found
ています。そのため、これについてあなたの助けを求めています。
この問題を解決するために、自分のmodels
ディレクトリを include_pathに追加しようとしました。
初挑戦
includePaths.models = APPLICATION_PATH "/models"
application.ini に追加
しかし、これはそれをインクルードパスに追加することさえしません
2回目の試行:
を使用してパスを明示的に追加しました
set_include_path(implode(PATH_SEPARATOR, array( realpath(APPLICATION_PATH . '/../library'), realpath(APPLICATION_PATH . '/models'), get_include_path(), )));
ただし、これにより含まれているパスにそのパスが追加されても、エラーは引き続き発生します。
の公式ドキュメントでこのモデルの命名を見Zend_Db_Table
たことがありますが、自動ロードに関連するものは見つかりませんでした。
解決策をありがとうございました。
ps zend フレームワークのバージョンは 1.11.1 です