我使用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)。
我不知道为什么它不会在这台机器上工作。
任何人都知道问题可能是什么?