Посмотрите, стоит ли вообще данная идея реализации, или это полное Г? Наверное это не MVC, но по моему отделил всё как нужно.
class Page
{
private $id;
private $url;
private $name;
private $title;
private $type; //article OR catalog OR product
private $content;
public function __construct(){
$this->url = preg_replace('/[^a-z0-9\]/u', '', $_SERVER['REQUEST_URI']);
/*
Пропускаем эту часть кода, вкратце:
1) разбираем url на массив (explode), отделяя слешами вложенность
2) обращается к БД, получаем основную информацию о странице:
номер, название, заголовок, тип (экшн), контент (HTML)
*/
$this->id = 1;
$this->name = 'Название страницы';
$this->title = 'Заголовок';
$this->type = 'article';
$this->content = 'Текст страницы';
if(empty($this->id)){
header("HTTP/1.0 404 Not Found");
}
}
public function createPage(){
$pattern = array(
'{name}' => $this->name,
'{title}' => $this->title,
'{content}' => $this->content
);
$template = 'template_'.$this->type.'.tpl'; //В файле шаблона есть {заменяемые области}
return strtr(file_get_contents($template), $pattern);
}
}
$site = new Page();
echo $site->createPage();
_____________
..Работает - не трогай!