一般的に、をrequire_once適切に使用することで、ほぼ完全に呼び出しを回避できますZend_Loader_Autoloader。もちろん、鍵は「適切」です。
通常、はをフォルダにpublic/index.php設定include_pathしlibraryます。次に、を使用している場合はZend_Application、が登録され、の配列を使用して名前空間プレフィックスが登録されているPSR-0準拠のクラスZend_Loader_Autoloaderが検索されます。autoloadernamespacesapplication/configs/application.ini
application/modelsトリッキーな部分は、に表示されるモデル、に存在するサービスなど、「include_pathに存在しない」ファイルで定義されたクラスの場合ですapplication/services。そこで定義されたクラスはPSR-0標準に従う傾向がありますが、 PSR-0マッピングは、インクルードパスから離れたベースに対して発生します。これは、システムがクラス名プレフィックスとベースパスの間のマッピングを認識している必要があることを意味します。これがリソースオートローダーZend_Application_Bootstrap_Bootstrapの出番です。これらのリソースオートローダーは通常、アプリケーションのブートストラップ拡張および拡張するモジュールブートストラップで自動的に設定されますZend_Application_Module_Bootstrap。
ビューヘルパーは、「include_pathの外」にあるクラスのもう1つの例であり、おそらく。のようなものapplication/views/helpersです。これらは通常、短い形式を使用してビュースクリプトで呼び出されるため$this->someHelper($someParam)、この短い名前から完全修飾クラス名を生成する方法をシステムに通知する必要があります。これは、$view->addPrefixPath()名前空間プレフィックスをファイルシステムの場所にマップする方法を使用して実現されます。繰り返しになりますが、アプリレベルおよびモジュールレベルのブートストラップメカニズムにより、これらのほとんどが設定されます。
PSR-0標準に準拠していないライブラリ/クラスの場合、カスタムオートローダーを作成して(通常はBootstrapで)Zend_Loader_Autoloaderシングルトンに接続できます。これは、明示的なインクルード/リクワイアがある唯一の場所です。
include/requiretl; dr:既存のZFオートローダーメカニズムを適切に使用すれば、独自のアプリケーションコードにステートメントを含める必要はほとんどありません。