此自动加载将找到您调用的每个类,如果您将每个类放在不同的文件中。
它从您在 $root 变量中指定的根目录递归地进入每个目录。
您可以在 $dir_to_not_look_in 数组中指定您不想遍历的文件夹(例如,您不会在 MVC 项目的“view”文件夹中找到任何类);
spl_autoload_register(function($class) {
$root = 'my/root/path';
$file = $class . '.php';
$dir_to_not_look_in = array($directories, $to, $not, $look, $in);
if(!function_exists('load')) {
function load($dir, $file) {
if(file_exists($dir . '/' . $file)) {
require_once $dir . '/' . $file;
} else {
foreach(scandir($dir) as $value) {
if(is_dir($dir. '/' . $value) && !in_array($value, $dir_to_no_look_in))
load($dir. '/' . $value, $file);
}
}
};
}
load($root, $file);
});