Мне нужен был шаблонизатор, но только простой, без всяких тяжелых Smarty и Twig (PHP сам по себе шаблонизатор).
Вообщем Контролер обратился к модулю, он отработал свое и теперь пора обертывать его в шаблон:
<?
class controller {
static $class = false;
static function run (){
// Маршрутизация
Router::router();
self::$class = Router::$module;
// Шаблонизатор
self::show();
}
static function show (){
$data = array(
'title' => meta::$title,
'descr' => meta::$descr,
'key' => meta::$key,
'css' => css::style(),
'js' => js::getJs(),
'header' => Header::show(),
'buffer' => call_user_func(self::$class.'::show'),
'footer' => Footer::show(),
'other' => ''
);
view::tpl('index',$data);
}
}
Как заметили все обрабатывается и хранится в массиве $data
а затем метод класса view делает следующее, покажу только суть :
foreach ($data as $var => $value){
str_replace("{$var}", $value, $tpl);
}
Вообщем меняет местами {$var} на значение $value.
Все работает, примерное время выполнение проекта в среднем: 0.0165019035339
У меня складывается определенное чувство, что я делаю плохо выполняя все тяжелые скрипты в массиве, влияет ли это на производительность? или лучше будет все это передавать строкой а там при прохождение по массиву уже использовать eval()?