PHP шаблоны
Я пишу простой шаблонный слой в PHP, но я немного застрял. Вот как это работает на данный момент:
Во-первых, я используюfetch_template
загрузить содержимое шаблона из базы данных - это работает (и я собираю все шаблоны при запуске, если вам интересно).
Я использую переменные PHP в своем коде шаблона и в логике - например:
// PHP:
$name = 'Ross';
// Tpl:
<p>Hello, my name is $name.</p>
Я тогда используюoutput_template
(ниже), чтобы разобрать переменные в шаблоне и заменить их. Ранее я использовал шаблоны тегов с прославленнымstr_replace
шаблон класса, но это было слишком неэффективно.
/**
* Returns a template after evaluating it
* @param string $template Template contents
* @return string Template output
*/
function output_template($template) {
eval('return "' . $template . '";');
}
Моя проблема, если вы еще не догадались, состоит в том, что переменные не объявлены внутри функции - поэтому функция не может их проанализировать в$template
если я не помещу их в глобальную сферу - что я не уверен, что хочу сделать. Это или иметь массив переменных в качестве параметра в функции (что звучит еще более утомительно, но возможно).
У кого-нибудь есть какие-либо решения, кроме использования кода из функции (это только одна строка) в моем коде, а не использования функции?
Спасибо росс
Постскриптум Я знаю о Smarty и огромном количестве шаблонизаторов - я не собираюсь их использовать, поэтому, пожалуйста, не предлагайте их. Спасибо!