Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Template Engine for PHP (https://javascript.ru/forum/offtopic/4049-template-engine-php.html)

Tim 17.06.2009 23:16

Template Engine for PHP
 
Пару недель назад разобрался со Smarty, неделю спустя он начал меня жутко раздражать и появилось желание написать свой шаблонизатор. Хотельсь бы узнать ваше мнение по этому поводу.

Возможно Zend_View кото-то пользовал, буду рад если вы оставите свой отзыв об этом движке.

Gvozd 17.06.2009 23:26

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

Tim 18.06.2009 01:12

Вот я тоже решил облегчённую версию придумать, синтаксис как и у Smarty будет. Сейчас реализована поддержка переменных, атрибутов default, инклуды, достовно интерпретируемые блоки, вставка ПХП кода и файлы конфигураций. Ещё нужно с кеширование и компиляцией шаблонов разобраться, регулярные выражения оптимизировать и думаю этого вполне хватит. На кой в Smarty такое колличество инструкций вообще не понятно, можно просто обработку ПХП в шаблонах использовать.

Допишу - буду со Smarty скоростями мерятся, посмотрим кто быстрее.

Kolyaj 18.06.2009 10:55

Цитата:

Сообщение от Tim
Возможно Zend_View кото-то пользовал, буду рад если вы оставите свой отзыв об этом движке.

Хороший движок. Как минимум тем, что не добавляет свой язык, а пишется все на PHP. Если еще и на весь Zend глянуть, то и многое другое писать не придется :)

x-yuri 18.06.2009 14:49

а что скажешь про blitz? Интересует подход (минимальная область соприкосновения верстальщика и программиста), а не производительность (статья если не читал)

Kolyaj 18.06.2009 15:07

Цитата:

Сообщение от x-yuri
а что скажешь про blitz?

Я? Если я, то я такого не видел :) Да и не хочу уже ничего видеть. После Zend_View как глаза открылись. Нафига придумывать язык шаблонов, если PHP сам по себе язык шаблонов. Чем <{$var}> отличается от <?= $this->var ?>? Верстальщику что язык шаблонизатора учить, что самые основы PHP.

Некоторые вещи, согласен, с Zend_View не сделаешь, но есть еще Zend_Layout.

Tim 18.06.2009 23:27

x-yuri,
Прочитал статью о blitz, мне кажется идеи очень хорошие. Сложносочинённые конструкции в шаблонах не только верстальщику жизнь усложняют, потом и программисту, чтобы логику понять, приходится в HTML лазать.

К Zend Framework я тоже присмотрелся - вешь очень хорошая. Свой шаблонизатор всё же допишу. Возможно это не самая лучшая позиция, но я не люблю чужой код, особенно в таких объёмах как у Smarty и прочих шаблонизаторов.

x-yuri 19.06.2009 17:33

Цитата:

Я? Если я, то я такого не видел Да и не хочу уже ничего видеть. После Zend_View как глаза открылись. Нафига придумывать язык шаблонов, если PHP сам по себе язык шаблонов. Чем <{$var}> отличается от <?= $this->var ?>? Верстальщику что язык шаблонизатора учить, что самые основы PHP.
я тоже в какой-то момент пришел к такому выводу. А блочные шаблонизаторы мне вообще казались какой-то устаревшей штукой (типа когда-то было так)

Но этот чувак заставил меня сомневаться. В какой-то степени потому, что он достаточно опытный. А его взгляд на шаблонизаторы скорее со стороны менеджера, чем программиста. Как я понимаю: каждый должен заниматься своим делом, смежные области должны быть минимизированы. Если версткой занимается программист, может native php/Zend_View/smarty и лучше. Но если есть отдельный верстальщик...

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

а в блочных шаблонизаторах никакого языка-то ведь и нету: в основном есть просто блоки и подстановка переменных

Kolyaj 19.06.2009 17:48

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

Статью я, честно говоря, ниасилил. Слишком много строчных букаф, да и мыслью растекается по дереву.
(Кстати, Gvozd, типичный клинический случай твоего стиля написания текста. Читать невозможно вообще.)

Gvozd 19.06.2009 18:38

Цитата:

Сообщение от Kolyaj
(Кстати, Gvozd, типичный клинический случай твоего стиля написания текста. Читать невозможно вообще.)

Запомню.
К сожалению не смог оценить статью, потому что страница вешает оперу на пару секунд, при малейшей попытке прокрутки текста.


Часовой пояс GMT +3, время: 04:22.