我正在使用 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) 上运行良好。
我不知道为什么它不能在这台机器上工作。
有人知道问题可能是什么吗?