PHPのオートローディングで足を濡らしています。基本的なことはできたと思いますが、それでもうまくいきません。
次のディレクトリ構造を取得しました。
myLib
-bootstrap.php
-sven
-project
project.php
bootstrap.php
ライブラリを使用するために含まれるファイルです。このファイルには、次のコードが含まれています。
spl_autoload_extensions('.php');
spl_autoload_register();
$var = new \sven\project\project();
$var->init();
そしてでproject.php
:
namespace sven\project;
class project {
public function init() {
echo 'It works!';
}
}
私の理解では、オートローダーの使用方法は、コア PHP オートローダーが名前空間をディレクトリに変換してから、そのクラスを含む php を探す必要があるということです。
'It works!' を表示する代わりに、致命的なエラーがスローされます。残念ながら、CMS は致命的なエラーが発生したことを通知するだけなので、そのエラーが何であるかを正確に知ることはできません。
しかし、このような単純な構造では、エラーは非常に基本的であり、それがどのように機能するかを知っている人にとっては簡単に見つけることができると確信しています.
この例のどこが間違っていますか? このセットアップでオートローダーがどのように動作するかを正しく説明しましたか、それとも誤解がありますか?
EDIT:最後にエラーログを実行しました:
Fatal error: Class undefined: sven\\project\\project\\project\\project in /xxx/bootstrap.php on line 36
それは明らかに間違っているように見えますが、どうすればそれを変更できますか? バックスラッシュが 2 つあるのはなぜですか?