Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Оценка адекватности класса
Покинул форум
Сообщений всего: 196
Дата рег-ции: Март 2010 Откуда: Днепропетровск
Помог: 6 раз(а)
Написал класс для простого шаблонизатора, который выполняет минимум необходимых для меня функций. Может кто-то глядя на этот код подскажет более эффективные методы или функции. Просьба не рассказывать про велосипеды и не тыкать на Smarty, ZendView и т.п. Практика написания велосипедов никому не мешала.
Краткое описание: $tpl_name - имя файла шаблона; $template - текст шаблона который обрабатывается; $ifmatch - массив вхождения для условного вывода; $if_array - массив переменных для условного вывода(задано что выводить - выводит, не задано - не выводит);
Две последние переменные массивы по причине, что планировал поддержку нескольких условий в шаблоне, но пока этого не добился.
function __construct - получает имя шаблона и загружает его в переменною $template. Если есть условия вывода откидывает часть заключенную между тегами <!--{if item=iffer}-->...<!--{/endif}-->; function var_array - получает массив и заменяет переменные вида <!--{PAGETITLE}--> в шаблоне на её значение. Попутно при наличии в принятом массиве условных переменных подставляет их значение; function for_array - функция для циклов, поддерживает несколько циклов в шаблоне, но с разными именам. Имя по умолчанию "data";
Покинул форум
Сообщений всего: 260
Дата рег-ции: Май 2010
Помог: 0 раз(а)
по мне это довольно сложно, не слишком читаемо (рекомендую - Закон сохранения сложности)
я к шаблонам вообще по другому отношусь - тут (как и в смарти) все-таки не разделен php и html - это лишняя "надстройка" (шаблонами я пользуюсь, но иначе - есть подготовка данных, есть шаблон (без if ... foreach ... ), обычный str_replace(keys, values, shablon)) - главное все прозрачно
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.