나는 PHP를 자동 로딩 할 때 젖은 발을 짚고있다. 나는 실제로 내가 기초를 가지고 있다고 생각하지만, 어떻게 든 그것은 여전히 효과가 없을 것이다.spl autoloading : 클래스를 찾을 수 없습니다 - 네임 스페이스 문제가 있습니까?
myLib
-bootstrap.php
-sven
-project
project.php
bootstrap.php
는 lib 디렉토리를 사용하는 것이 포함됩니다 파일입니다 :
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를 찾습니다.
'작동합니다!'대신 "치명적인 오류가 발생합니다. 불행히도 CMS에서 치명적인 오류가 있음을 알리기 때문에 오류의 원인을 정확히 알 수 없습니다.
그런 간단한 구조로, 오류가 아주 간단하고 그것이 작동하는 방법을 아는 사람이 쉽게 찾을 수 있다고 확신합니다.
어디에서이 예제가 잘못 되었습니까? 오토로더가이 설정에서 어떻게 작동해야하는지 또는 오해가 있습니까?
편집 : 마지막으로 오류 로그를 실행 가지고 :
Fatal error: Class undefined: sven\\project\\project\\project\\project in /xxx/bootstrap.php on line 36
분명히 잘못된 보이지만, 어떻게를 변경하려면? 두 개의 백 슬래시가있는 이유는 무엇입니까?
음, 5.6.99 & hhvm 3.3.0 ;-)을 실행 중입니다. – Sven