0
当我执行下面的代码:spl_autoload_register W /多个目录
// autoload classes
spl_autoload_register(function($class) {
require_once("$class.php");
});
它适用于包含在同一目录中的所有脚本类。但是,位于另一个目录中的任何类都将无法加载。以下解决方案的工作原理如下:
define('ABSOLUTE_PATH', "/var/www/application");
// autoload classes
spl_autoload_register(function($class) {
// class directories
$dir = array(ABSOLUTE_PATH,
ABSOLUTE_PATH . '/models');
foreach($dir as $path) {
$file = sprintf('%s/%s.php', $path, $class);
if(is_file($file)) {
require_once($file);
}
}
});
但这种感觉很难看。我已阅读you can use namespaces,但我似乎无法得到该或其他任何工作。有人可以向我展示一个更优雅的解决方案,如果存在的话,我不需要对目录路径进行硬编码?
为什么不使用自动装卸简单,因为它是需要加载每个单独的类,而不是文件的整个目录,无论他们是否需要 –
@MarkBaker你是什么意思? –
您请求一个新的模型类,自动加载器加载每一个模型类文件,无论您是否要求 –