您好我正在使用CakePHP,我需要添加一些供应商文件到自动加载。这是正确的方法:
在bootstrap.php中,我有以下代码:
function __autoload($className){
$classFile = '../vendors/phprtf/' . str_replace('_', '/', $className) . '.php';
// check if file exists
if(file_exists($classFile)) {
require $classFile;
}
}
PHPRTFLite在各种子目录下有很多类文件。所以列出所有这些都不是一个好的选择。
现在似乎有效。
答案 0 :(得分:4)
您应该使用spl_autoload_register()
来提供灵活性。
如果您的代码具有现有的
__autoload
功能,那么此功能 必须在__autoload
堆栈上明确注册。这是因为spl_autoload_register()
将有效地替换引擎缓存__autoload
或spl_autoload()
的{{1}}函数spl_autoload_call()
。如果必须有多个自动加载功能,
spl_autoload_register()
允许这样做。它有效地创建了自动加载功能队列, 并按照定义的顺序遍历每一个。通过 相反,__autoload()
只能定义一次。