Зачем на фронтенде отдавать динамические страницы? Если я правильно понимаю схему с фронтенд сервером, то он должен отдавать статику и заниматься кэшированием. А все сценарии обрабатываются на бэкенде.
Вот во всех фреймворках, что я видел, в частности и в кохане, используются маршруты для определения контроллера и т.д. Почему просто не сделать динамический парсер?
У меня реализован элементарнейшим образом (не претендую на идеалы, но тем не менее) фрагмент:
public function launch()
{
$parsed = parse_url($this->url);
$raw_url = $parsed['path'];
$url = trim(urldecode($raw_url), '/');
$elements = explode('/', $url);
$count = count($elements);
if($count > 2)
{
$this->class=$elements[0];
$this->method=$elements[1];
for($i=2; $i<$count; $i++)
{
$this->arg[]=$elements[$i];
}
return $this->_launcher();
}
elseif($count == 2)
{
$this->class=$elements[0];
$this->method=$elements[1];
return $this->_launcher();
}
elseif($count == 1 and $elements[0] != NULL)
{
$this->class=$elements[0];
return $this->_launcher();
}
else
return $this->_launcher();
}
Запускается еще проще:
private function _launcher()
{
$obj = new $this->class();
return call_user_func(array($obj, $this->method), $this->arg);
}
Вот я все пытаюсь понять чем это, собственно, плохо. И зачем во фреймворках городят огород?