Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Шаблонизаторы


Автор: Secandr 27.8.2004, 15:37
Вот наткнулся на статью:

http://spectator.ru/technology/php/easy_templates

смысл её в том, что любой шаблонизатор - это пхп написаный средствами пхп smile.gif

Автор: IZ@TOP 27.8.2004, 15:41
И что ты в связи с этим предлагаешь?

Автор: Secandr 27.8.2004, 15:47
Просто пища для размышления, я об этом никогда не думал. А получается откровеная глубость - писать пхп на пхп smile.gif

Почитай статью, там написано что делать smile.gif

Автор: Akina 27.8.2004, 16:22
Глупость - вряд ли правильно... скажем препроцессоры - глупость или нет?

Автор: Ignat 27.8.2004, 16:35
Ну смотря как на это смотреть: изобретать новый язык шаблонов действительно глупость. имхо на xslt переходить надо.

Автор: Secandr 27.8.2004, 16:36
Тут можно привести в пример регулярные выражения - мощь, универсальность, но при этом низкая скорость, хотя чаще всего можно заменить substr,strpos,explode

Автор: Sardar 28.8.2004, 00:18
Если в том виде в каком обычно популярные шаблонизаторы существуют... то это PHP в PHP smile.gif
Я писал свой, в котором не нужно было программировать(циклы и т.п.), просто размечаешь где, куда, вставится инфа. Например что бы вставить все топики как на форуме нужно:
Код
<tpl: !topic_msg#>
....html....
<tpl: author#>....<tpl: !date(topic.date)|local_time(user.local)#>...
<tpl: !exists(topic.email)><a href=".... <img src="...
<tpl: !alt#><img src="... </tpl: alt#>
</tpl: exists#>
и так далее...
</tpl: topic_msg>

Актив topic_msg переберет и выведет все топики. Это цикл? Да, но смысл немного другой и это мощнее, в одном примере сложно показать smile.gif
Все выстраивается в виде дерева. Переменные(author...), функции/активы и т.п. существует в своем контексте. Например переменная author запростится у актива topic_msg и выше по дереву если не найденна. Таким обраозм нет набивания шаблонизатора переменными, перемешка имен в одном пространстве и прочих проблем.
По сути вся работа это разметка где/что будет стоять. Нет никаких ключевых/зарезервированных слов и т.п. Есть общий механизм парсинга, обработки тегов(активно юзается буфферизация) и идея/правила, по которым существуют все другие компоненты шаблонизатора(плагины). Шаблон компилируется в PHP код, но не как в Smarty(почти PHP в PHP), этот код гораздо выше уровнем чем PHP и он исполняется в свем окружении. Шаблонизатор не тормозит wink.gif

Автор: Graf Zeppelin 28.8.2004, 01:39
А то что библиотеки и всякие модули на ПХП написаны для ПХП это не глупость?

Автор: Wowa 28.8.2004, 10:08
Цитата(Graf @ 28.8.2004, 00:39)
А то что библиотеки и всякие модули на ПХП написаны для ПХП это не глупость?

нет. Тут дело в том, что многие на ПХП выдумывают еще дополнительный микроязык и пишут на нем шаблоны, хотя теже шаблоны можно на ПХП писать, он не сложнее, чем выдумываемый микроязык.

Автор: arial 29.8.2004, 13:26
Кодер, который пользовался каким-нибудь темплейтером, вряд ли обойдется в последующих проектах без него, ибо тэмплэйтер - это очень удобно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)