如何在CakePHP中允许自动加载自定义库?

时间:2011-08-22 03:16:56

标签: php cakephp autoload

您好我正在使用CakePHP,我需要添加一些供应商文件到自动加载。这是正确的方法:

在bootstrap.php中,我有以下代码:

function __autoload($className){

        $classFile = '../vendors/phprtf/' . str_replace('_', '/', $className) . '.php';

        // check if file exists
         if(file_exists($classFile)) {
            require $classFile;
        }

}

PHPRTFLite在各种子目录下有很多类文件。所以列出所有这些都不是一个好的选择。

现在似乎有效。

1 个答案:

答案 0 :(得分:4)

您应该使用spl_autoload_register()来提供灵活性。

  

如果您的代码具有现有的__autoload功能,那么此功能   必须在__autoload堆栈上明确注册。这是因为   spl_autoload_register()将有效地替换引擎缓存   __autoloadspl_autoload()的{​​{1}}函数   spl_autoload_call()

     

如果必须有多个自动加载功能,spl_autoload_register()   允许这样做。它有效地创建了自动加载功能队列,   并按照定义的顺序遍历每一个。通过   相反,__autoload()只能定义一次。