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ます。

致命的なエラー: クラス 'System\Helper\ADHelper' が /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) では動作しません。

このマシンで動作しない理由がわかりません。

問題が何であるか誰にも分かりますか?

4

0 に答える 0