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) では動作しません。
このマシンで動作しない理由がわかりません。
問題が何であるか誰にも分かりますか?