PHP 5.3에서 네임 스페이스에 대해 배우고 있는데 네임 스페이스 자동 로딩을 사용하고 싶습니다. 이 SplClassLoader class을 찾았지만 어떻게 작동하는지 알 수 없습니다.SplClassLoader로 PHP 자동 로딩?
system
- framework
- http
- request.php
- response.php
index.php
SplClassLoader.php
가 어떻게 클래스 자동 로딩을 사용할 수 있습니까 :
이의 내가이 같은 디렉토리 구조를 가지고 있다고 가정 해 봅시다?request.php
과
response.php
에는 어떤 네임 스페이스가 있어야합니까?
namespace framework\http;
class Request
{
public function __construct()
{
echo __CLASS__ . " constructer!";
}
}
그리고 이것은 response.php
입니다 :
이
은request.php
입니다
namespace framework\http;
class Request
{
public function __construct()
{
echo __CLASS__ . " constructed!";
}
}
그리고 index.php
에서 내가 가진 :
require_once("SplClassLoader.php");
$loader = new SplClassLoader('framework\http', 'system/framework');
$loader->register();
$r = new Request();
내가이 오류 메시지가 :
Fatal error: Class 'Request' not found in C:\wamp\apache\htdocs\php_autoloading\index.php on line 8
왜 작동하지 않습니까? 내 프로젝트에서 SplClassLoader
을 사용하여 클래스를로드/필요하게하고 폴더와 네임 스페이스를 어떻게 설정하고 이름을 지정해야합니까?
파일 및 디렉토리 이름이 대문자로 시작해야 할 수도 있습니다. –
@Adrian Macneil : 창문에는 없지만 네가 맞아. 이걸 만들어야 해. – hakre