Namespaced类未自动加载

时间:2013-07-21 17:00:50

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

我使用spl_autoload_register在PHP中自动加载我的班级。到目前为止,这对我来说一直很好。我有一个在Windows和Linux服务器上都运行的站点没有问题。

但现在我试图在不同的Linux服务器上设置我的框架,当需要自动加载 某些 类时会出现问题。

这就是我班上的样子:

<?php
namespace System\Helper;

class ADHelper
{
    // ... methods omitted for simplicity
}
?>

在我的index.php我自动加载课程中,如此:

function autoload_full_namespaced ( $class )
{
    $file = str_replace ( '\\', '/', $class );
    if ( file_exists ( $file . '.php' ) )
    {
        echo "a: " . $class . ' <br />';
        require_once ( $file . '.php' );
    }
}

当我加载我的网站时,它会显示它自动加载的所有类:

a: System\Core\ADRegistry 
a: Bootstrap\ADConfig 
a: System\Database\PDO_Mysql 
a: System\Core\ADRouter 
a: System\Core\ADDispatcher 
a: System\Helper\ADHelper 
a: System\Core\ADPatcher\ADInterceptor 

但它给了我一个关于ADHelper类的错误,它似乎是required_once,因为它是回声。

  

致命错误:Class&#39; System \ Helper \ ADHelper&#39;找不到   /home/vhosts/php/httpdocs/bday/System/Core/ADDispatcher.php   在第121行

就像我之前说的那样,它在所有Linux服务器(PHP 5.3.15)和我的Windows服务器(PHP 5.4.x)上运行良好,但在当前的Linux服务器上运行(PHP 5.3.3)。

我不知道为什么它不会在这台机器上工作。

任何人都知道问题可能是什么?

0 个答案:

没有答案