PHP автозагрузка с SplClassLoader?
Я изучаю пространства имен в PHP 5.3 и хочу использовать автозагрузку пространств имен. я нашел этоКласс SplClassLoader, но я не могу понять, как это работает.
Допустим, у меня есть структура каталогов, как это:
system
- framework
- http
- request.php
- response.php
index.php
SplClassLoader.php
Как включить автозагрузку классов? Какие пространства имен должныrequest.php
а такжеresponse.php
имеют?
Этоrequest.php
:
namespace framework\http;
class Request
{
public function __construct()
{
echo __CLASS__ . " constructer!";
}
}
И этоresponse.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
в моих проектах, так что он загружает / требует мои классы, и как мне настроить и назвать папки и пространства имен?