Доброго времени суток. Очень трудно найти по php что то новое в сети, большинство примеров устаревшие. Не нашел ни одного примера автолоадера с неймспейсами. Привожу здесь тот вариант что написал и прошу разъяснить чем плох такой вариант, вроде все работает. файл index.php PHP: session_start(); include ('autoload.php'); $db=include ('core/dbconnect.php'); $data=new \core\Registry(); \core\Router::Run($data); файл autoload.php PHP: define('ROOT_DIRECTORY', realpath(dirname(__FILE__))); define('INCLUDE_DIRECTORY', ROOT_DIRECTORY); set_include_path(get_include_path() . PATH_SEPARATOR . INCLUDE_DIRECTORY); spl_autoload_extensions(".php"); spl_autoload_register(); файл router.php PHP: namespace core; class Router { private $contoller; private $data; public function __construct($data) { $this->data=$data; } static function Run($data) { $url=$_GET['url']; $action="Index"; if(isset($url)) { $exp=explode('/',$url); if(file_exists("ctrls/".$exp[0].".php")) { $controller="\ctrls\\".$exp[0]; if(isset($exp[1])) { if(method_exists($controller,$exp[1])) $action=$exp[1]; else $action="err_404"; } } else { $action="err_404"; $controller="\ctrls\\index"; } } else { $controller='\ctrls\\index'; } $controller=new $controller($data); $controller->$action(); } } и для примера пара файлов контроллера файл core/ctrl.php PHP: namespace core; class ctrl { } и файл ctrls/index.php PHP: namespace ctrls; class index extends \core\ctrl { public $data; public function __construct($data) { $this->data=$data; } public function index() { \core\view::load("index","template",$this->data); } public function about() { \core\view::load("about","template",$this->data); } public function err_404() { \core\view::load("404","template",$this->data); } } Понятно что код неидеальный, в php продвинутся дальше определенного уровня не имея работы по специальности - невозможно.
@marran, плох тем, что после подключения autoload.php приходится, например, выполнять $db=include('core/dbconnect.php'); Подробнее: Битва стандартов: PSR-0 против PSR-4 Там и рассуждения, и описания, и примеры...
За ссылку спасибо, по крайней мере понятно что такой вариант может существовать, правда маловато написано( А чем плохо $db=include('core/dbconnect.php');? Там просто логин пасс к базе. А для работы с базой идет стандартный singleton класс, который в код здесь не попал. --- Добавлено --- Вот таким образом я и нашел spl_autoload_register...
Там очень много полезного написано... если заглянуть в описание psr-0 и psr-4 по ссылочкам в начале. К чему лишний include, если есть автозагрузка классов?