Добрый день всем!
Пишется небольшой фреймворк.
Упрощенная структура файлов такая:
-Apps
--Config.php
--Router.php
--Template.php
--DB.php
--Mail.php
-HTML
--css
--images
--js
--main.tpl
-Modules
--Main
---Controller.php
---Model.php
--Feedback
---Controller.php
---Model.php
.....
.htaccess
index.php
основное отличие от тех фреймфорков что нашел (перерыл достаточно):
есть что то типа "модуль" в который отличается самодостаточностью.
Имеется папка Modules в ней хранятся "модули"
каждый модуль это папка в которой имеются файлы Controller.php и Model.php (так же папка view c шаблонами)
Прошу помощи разобраться с роутером - классом который в соответствии с запросом вызовет определенный контроллер, код сейчас такой:
<?php
namespace Apps;
class Router {
public $modul = 'Main';
public $action = 'view';
public $id = null;
public $param = array();
public $params = false;
public function __construct()
{
$request = explode("/", Request::get('route'));
if($request) foreach($request as $key=>$req)
{
if(!$req) continue;
if($key==0) $this->modul = $req;
if($key==1) $this->action = $req;
if($key==2) $this->id = $req;
if($key>2) $this->param[] = $req;
}
require_once ROOT.DIR_SEP.'Modules'.DIR_SEP.$this->modul.DIR_SEP.'Controller.php';
new Controller($this->action, $this->id);
}
}
необходимо что бы он красиво запускал Controller (Controller.php) из модуля (папки) $this->modul, желательно через стандартную функцию автолоад и/или пространство имен \Modules\$this->modul\Controller
без этого инклуда ROOT.DIR_SEP.'Modules'.DIR_SEP.$this->modul.DIR_SEP.'Controller.php';