Минимальные требования к шаблонизатору.

Alexandre

PHPПенсионер
Минимальные требования к шаблонизатору.

Каковы на Ваш взгляд минимальные требования к шаблонизатору, чтоб он выполнял максимальную функциональность?

Я пока остановился на следующих примитивах:
1) замена поля (переменной)
2) вставка шаблона (инклуд шаблона)
3) условная вставка (IF)
4) циклическая вставка текста с заменой полей (DO/WHILE)
 

Scud

Новичок
Wrap - шаблона, чтобы внутренний мог обернуться во внешний.
 

Апокалипсис

тех дир matras.ru
Alexandre
некоторые математические ф-ции: сложение, умножение, вычитание, деление .. ets.)
 

jrip

Новичок
Хм) Наверное, я что-то не понимаю в этой жизни. Но лично мне хватает первых двух пунктов. Вернее даже первого пункта с делением шаблона на блоки. А за всю логику отвечает модуль, использующий шаблон. Никогда вообщем-то не понимал прикола smarty-подобных извращений.
 

Alexandre

PHPПенсионер
А за всю логику отвечает модуль, использующий шаблон. Никогда вообщем-то не понимал прикола smarty-подобных извращений.
согл, но теперь мы абстрагируемся от модуля...
будем считать, что шаблонизатор за пределами пхп... ;)
просто он получает данные и подставляет их в шаблон по некоторым правилам. каков возможен минимальный набор этих правил?
 

MagnetiZ

Новичок
+ компилируемость
+ кешируемость
Математика .... гм рассмешили
 

jrip

Новичок
Имхо, минимальный набор правил будет зависеть от конкретной задачи. А иногда он будет отнюдь не минимальным...
 

Alexandre

PHPПенсионер
+ компилируемость
+ кешируемость
это не требования к функционалу,
это фишки технической реализации, мне хотелось бы знать минимальный функционал, который обеспечил бы достаточное кол-во решений.

Имхо, минимальный набор правил будет зависеть от конкретной задачи. А иногда он будет отнюдь не минимальным...
jrip Однако большинство задач вмещается в небольшой набор паттернов проектирования. И от конкретной задачи, мало что зависит, если правильно выбран набор примитивов, строительных кубиков, паттернов ну и etc...
 

jrip

Новичок
Alexandre
А зачем? Зачем вообще нужна какая-то логика в шаблоне? Зачем себя ограничивать какими-то рамками, если есть PHP.
Вообщем выгода то какая? Если у меня есть модуль с логикой и шаблон - есть очень хорошее разделение. А если у меня есть шаблон с какой-то логикой то это нечто похоже на смесь PHP с html. Дак тогда проще и писать на эдакой смеси :)
 

Alexandre

PHPПенсионер
jrip не хотелось бы мне повторяться. посторайся обстрагироваться от пхп.
Пусть условие стоит так:
есть некотороя программа, которая неважно как, кем и когда запускается и на каком языке написана, известно что она генерит некоторые данные (неважно в каком формате).
есть некоторый шаблонизатор, который преобразует эти данные в html.

если бы данные были бы в формате XML, то мне былоб достаточно XSLT.
 

dark-demon

d(^-^)b
> если бы данные были бы в формате XML, то мне былоб достаточно XSLT.

и? сериализовать данные в xml - такая проблема?
 

atv

Новичок
каков возможен минимальный набор этих правил?
Одна из очень важных фишек XSLT - это древовидная структура данных и, соответственно, возможность использования отношений родитель-потомок в шаблонах. Вот это и есть ещё один функционал, который хорошо иметь в шаболнизаторе.
 

Alexandre

PHPПенсионер
и? сериализовать данные в xml - такая проблема?
не проблема, а чесание левой рукой правое ухо.
Одна из очень важных фишек XSLT - это древовидная структура данных и, соответственно, возможность использования отношений родитель-потомок в шаблонах. Вот это и есть ещё один функционал, который хорошо иметь в шаболнизаторе.
а можно это как-то формализовать?
что значить использовать "возможность использования отношений родитель-потомок в шаблонах"?
 

MagnetiZ

Новичок
Вы ребят как то заблюждаетесь.
XSLT все это конечно хорошо. - он придумает очередной велосипед
Но как много аффтар собирается платить верстальщику?
Как по мне - уж лучше он бы знал "дивные" таблицы. и все тонкости встраивания прозрачного PNG с закруглеными угалми мазилы чем. XSLT.
А вот по поводу "фишек" ... я бы поспорил.. Можно для шаблоной системы вообще прдумать целый синтаксис. но от этого работать быстрее он не будет.
 

Alexandre

PHPПенсионер
Но как много аффтар собирается платить верстальщику?
те верстальщики, которые сидят в фирмах, как правило грамотные,
и ему по барабану, на чем верстать, на смарти,квикли или XSLT.
Как по мне - уж лучше он бы знал "дивные" таблицы. и все тонкости встраивания прозрачного PNG с закруглеными угалми мазилы чем. XSLT.
ну дивные таблицы он обязан знать...
ну, а про студентов, которые на фрилансе... это отдельная тема.
А вот по поводу "фишек" ... я бы поспорил..
давай отделять мухи от котлет...
есть функциональность шаблонизатора - это то, что мы может с помощью него реализовать.
есть техническая реализация (бэкэнд шаблона): компилирование, кеширование, индексирование & etc.
второе вытекает из первого, т.е. первоночально надо определиться с требованиями.
 

dark-demon

d(^-^)b
> уж лучше он бы знал "дивные" таблицы.
> и все тонкости встраивания прозрачного PNG
> с закруглеными угалми мазилы чем. XSLT.

оно исключает другое?
 

phprus

Moderator
Команда форума
Alexandre
4) циклическая вставка текста с заменой полей (DO/WHILE)
Я думаю, что в реализации циклов не помешала бы переменная хранящая номер итерации, и чтобы была возможность проверять четность/нечетность этого номера, например чтобы выводить полосатую таблицу.

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

jrip

Новичок
Alexandre
Тогда как я выше писал - всё будет зависеть от конкретных задач.
Если же мы хотим нечто безумно универсальное - мы хотим написать подобие PHP.

Да вот и кстати:
"Пусть условие стоит так:
есть некотороя программа, которая неважно как, кем и когда запускается и на каком языке написана, известно что она генерит некоторые данные (неважно в каком формате).
есть некоторый шаблонизатор, который преобразует эти данные в html." Окей. почему шаблонизатором не может выступать PHP в таком случае?
 
Сверху