Просмотр поста

.
L!MP

Реализуем метод обработки шаблонов.

public function render( $template, array $vars = null, $key = null )
    {
        if (is_array($vars)) {
            $this->vars = $vars += $this->vars;
        }
        
        ob_start();
        
        if (is_file($this->config['dir'] . '/' . $template . '.' . $this->config['ext'])) {
            include $this->config['dir'] . '/' . $template . '.' . $this->config['ext'];
            
            if (is_null($key)) {
                return ob_get_clean();
            }
            
            $this->$key = ob_get_clean();
            
            return $this;
        }
        
        throw new Exception("Template file '{$template}' not found.");
    }


Что тут просиходит:
первым, обязательным аргументом, мы передаём имя шаблона,
второй, не обязательный аргумент - массив переменных шаблона которые мы можем передать напрямую,
и третий, не обязательный аргумент - имя переменной шаблона в которую будит "собран" результат обработки (удобство этой фичи будит продемонстрировано позже).