@StasMはそれを正しく持っています。しかし、ここでもう少し説明を加えます。
はinclude_path
、PHP が an include
、 an include_once
、 a require
、または aを実行するときに参照する場所を示しますrequire_once
。もちろん、これらinclude
の およびrequire
は常に特定のファイルを参照します。
オートローディングは、特に欠落しているクラスに関するものです。まだアンロードされていないクラスがコードで参照されている場合 (通常、new
例のように、排他的ではありませんが、オペレーターを呼び出すことによって)、オートロードは、クラスをロードするためのアルゴリズムで開始できるプロセスです。include_path
このプロセスは通常、欠落しているクラスの名前から開始し、欠落しているクラスの名前から可能なパス名のコレクション (ファイルシステム内の絶対パスまたはファイル システム内のエントリに対する相対パス) を生成しinclude
、クラスが定義はそれらの 1 つにあります。
あなたの場合、「Test」という名前のクラスを呼び出しました。このクラスを含むファイルは、 file にありますAPPLICATION_PATH . 'tests/Test.php'
。そして、ディレクトリAPPLICATION_PATH . 'tests'
を に配置しましたinclude_path
。'Test'
しかし、自動読み込みアルゴリズムが導入されるまで、システムがクラス名をファイル名に関連付ける方法はありません'Test.php'
。
PEAR スタイルのクラス名規則は、この接続を提供します。そして、デフォルトの Zend Framework オートローダーのように、その規則を採用するオートローダーは、クラス名からファイル名、そしてinclude
必要なファイルへのマッピングを実行できます。
最後の複雑な問題として、従来の Zend Framework ディレクトリ レイアウト規則では、モデル、フォーム、サービス、コントローラー、ビュー ヘルパー、アクション ヘルパーなど、特定のクラスがインクルード パスにないフォルダーに配置されます。オートローダ (通常はBootstrap
クラス内) は、特定のクラス名と、include_path
.
たとえば、'Default_Model_User' という名前のクラスは、一見するとinclude_path
ファイル内に存在すると予想される場合があります'Default/Model/User.php'
。しかし、標準のアプリ ディレクトリ構造では、そのファイルを「application/models/User.php」に配置する必要があります。パス名の複数形の「モデル」と小文字の「m」 、およびクラス名の「デフォルト」の存在に注意してください。それを理解するには、クラス名からファイル名へのマッピングのパターンを提供するために、オートローダーの追加の構成が必要です。これは通常、リソース オートローダーを使用して実行されます。
あなたまたは他の誰かのいずれかで、これが役立つことを願っています。乾杯!