spl_autoload服务器相关问题

时间:2012-10-15 22:47:56

标签: php spl-autoload-register spl-autoloader

我们似乎在1个特定服务器上的spl_autoload有一个非常奇怪的问题。 警告:spl_autoload()[function.spl-autoload]:无法访问file.php

public function loadClass($className) {

        if(substr($className, -5) == 'Override') {

            $classes = glob(_ROOT_DIR_ . 'classes/*/override/*/*.php');

            foreach($classes AS $class) {
                $explodePath = explode('/', $class);
                $explodePath = array_reverse($explodePath);

                if(file_exists(_ROOT_DIR_.'classes/'.$explodePath[3].'/override/'.$explodePath[1].'/'.$explodePath[0])) {
                    set_include_path(get_include_path().PATH_SEPARATOR._ROOT_DIR_.'classes/'.$explodePath[3].'/override/'.$explodePath[1].'/');
                    spl_autoload(strtolower($className));
                }
            }
        }
        return FALSE;
    }

此外,我已经检查过并在WHM面板中显示包含路径设置为 :/ usr / lib中/ PHP:在/ usr / local / lib目录/ PHP的

这个特殊的服务器是Linux RedHat-9.3.6,运行PHP 5.3.8& eAccelerator在 上面的代码已经在其他10台服务器上进行了测试,并且运行正常,所以真的不知道为什么会在这个特定的服务器上发生这种情况。

我们真的想使用spl_autoload方法而不是include / require,这会降低我们的应用程序速度。 我希望有人可以提供一些帮助我们解决这个问题的建议。

0 个答案:

没有答案