0

我正在使用 PHP 自动加载我的课程spl_autoload_register。到目前为止,这对我来说一直很好。我有一个在 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,因为它是回显的。

致命错误:在第 121 行的 /home/vhosts/php/httpdocs/bday/System/Core/ADDispatcher.php 中找不到类 'System\Helper\ADHelper'

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

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

有人知道问题可能是什么吗?

4

0 回答 0