まず、次の SplClassLoader を使用して手を試しています - https://gist.github.com/221634
これが私のファイル構造です:
/root/f1/f2/APS/Common/Group.php
/root/f1/f2/index.php
/root/f1/f2/SplClassLoader.php
これが Group (Group.php) という私のテストクラスです
namespace APS\Common;
class Group{
...
}
すべてを呼び出している index.php ファイルは次のとおりです。
require "SplClassLoader.php";
$classLoader = new SplClassLoader('APS', 'APS/Common');
$classLoader->register();
次のエラーが表示されます。
Fatal error: Class 'Group' not found in /root/f1/f2/index.php on line 17
名前空間とパスをローダーに渡すときに、考えられるすべての組み合わせを試しました。それは決して機能しません。
更新 #1 - index.php の 17 行目:
16: use APS\Common;
17: $x = new Group();
更新 #2 - 構成情報
- アパッチ/2.2.15 (レッドハット)
- PHP 5.3.3
更新 #3 - 別のエラー メッセージが表示されます。
適切なコード:
require "SplClassLoader.php";
$classLoader = new SplClassLoader('APS', '/root/f1/f2');
$classLoader->register();
use APS\Common;
$x = new Common\Group();
私が得ているエラーメッセージ:
Warning: require(/f1/f2/APS/Common/Group.php): failed to open stream: No such file or directory in /root/f1/f2/SplClassLoader.php on line 133