少なくとも 1 つのファイルをインクルードしても問題ない場合は、オートローダーをインクルードに入れ、それがすべての読み込みを処理するようにすることができます。詳細については、spl_autoload_register
こちらをご覧ください。
ドキュメントから、サンプルセットアップは次のようになります。
function my_autoloader($class) {
include 'classes/' . $class . '.class.php';
}
spl_autoload_register('my_autoloader');
このコードは、すべてのページに含まれるファイルに入ります。これにより、クラス ファイルを手動でインクルードすることなく、次のことが可能になります。
$superClass = new SuperClass();
ここで、これを行うには、ファイルが にありclasses/SuperClass.class.php
、実際にはclass SuperClass {
宣言が含まれていると仮定します (必須ではありませんが、そうでない場合はエラーが発生します)。
ファイル命名スキーマと同様に、オートローダー関数で定義されたパスはいつでも変更できます。また、いくつかの異なる場所/ロジック、またはセットアップに合わせて必要なものを使用できます。
例えば:
function adv_autoloader($class) {
if (file_exists('classes/' . $class . '.class.php') {
require('classes/' . $class . '.class.php');
} else if (file_exists('includes/' . $class . '.inc.php') {
require('includes/' . $class . '.inc.php');
} else {
// can't locate the class
throw new Exception('Class not found: ' . $class);
}
}