Шаблоны и php
Если говорить о php как о языке, который предназначен для придания динамичности Вашему сайту, то его вполне можно назвать языком шаблонов. С возможностью использования управляющих структур и огромного количества готовых расширений. И поэтому я не особо понимаю, когда начинають изобретать велосипед, создавая template engine(в грубом переводе движок шаблонов) на php, придумывая при этом какой-то свой язык представления этих самых шаблонов(или используя общепринятые решения).Конечно, это убыстряет процесс создания дизайна динамических страниц, но довольно сильно бьет по производительности системы(интерпретатор php выполняет код интерпретации еще одного языка, пусть даже и очень простого).
Один из самых распостраненных способов построения такого интерпретатора - преобразование кода шаблона в php код посредством регулярных выражений и его выполнение интерпретатором php(такой способ используется в движке форумов phpBB). Конечно, можно немного уменьшить нагрузку и разработать систему кеширования преобразованного кода, но решение все равно довольно спорное - переписав все шаблоны на php Вы избавитесь от целого ряда проблем(правда, не от всех конечно) и получите систему с более высоким быстродействием.
September 17th, 2005 at 11:49 am
хех - для меня(верстальщика) это звучит как - нафига делать внешние ЦСС файлы - пишите все прямо в ХТМЛ - быстрее будет
Я утрирую - но думаю философия разделения всего и вся(дизайн инфо ПХП(а там еще кой нить МВЦ…)) - очень хорошая штука.
Разве нет?
September 19th, 2005 at 10:07 am
Насчет разделения согласен полностью - только вот должна быть серединка между эффективностью и удобностью. Когда шаблоны на php не дают требуемой производительности - это уже нехорошо.
October 11th, 2005 at 12:26 am
Выскажу и свое мнение насчет “templates engine”.
Все-таки вещь до абсурда глупая.
С единственным плюсом этого подхода - повышенной скоростью прикрутки шаблонов к скриптам - готов долго и яростно спорить. Это еще не факт что ускоряют они. Для кого ускоряют? Кто так решил я не знаю.
А уж если вас угораздило заниматься правкой шаблонов, написанных для какого-либо “template engine”, да еще и не ваших шаблонов, то это может превратится в настоящий головняк.
Написание и поддержка шаблонов, созданных лишь средствами php станет намного проще, если соблюсти ряд простых условий:
1. ВСЮ логику получения и преобразования данных по возможности убрать из шаблонов. Пусть скрипты занимаются подготовкой данных. Ассоциативные массивы - “самое то” для представления данных, которые после будут переданы шаблону.
2. В свою очередь, из скриптов вынести какие-либо выводы в браузер.
3. Постараться ограничится в шаблонах следующими операциями:
a) include
b) вывод значений переменных посредством <?=$var_name?>
c) if(), for()
d) извлечение данных из тех самых массивов посредством foreach()
e) несложные математические операции, конструкции вроде isset(), и т.д.
Хотя бывают случаи, когда этого не хватает и приходится перегружать шаблоны логикой, например, отрисовка дерева и прочие вещи, хотя и тут есть довольно удобные подходы, о которых сейчас просто некогда рассказать.
P.S. коммент получился довольно сумбурный, но уж не обесудте. Как-нибудь сяду, систематизирую знания и накопленный опыт и выдам статью по этому поводу.
July 31st, 2006 at 11:05 am
Шаблоны. Они удобны для распределенной работы. Дизайнер код знать не обязан, даже несложный.
Если кто-то пробовал править osCommerce тот обоими руками будет ЗА шаблоны
November 12th, 2006 at 10:08 pm
Один раз воспользуешься шаблоном и потом уже тошнит, когда увидишь проект на чистом PHP - из собственного опыта знаю.
ИМХО, шаблоны нужны. Ведь если можно облегчить разработку проекта в целом, то почему бы не сделать этого?
Kitson
Я пробовал и больше не хочу.