Комментарии 17
Эх… Всё равно парсить два раза… и релиз явно не на 3 кБайта…
конечно отсутствие include это самый большой минус — нет смысла копипастить шапки|подвалы|заголовки… А так соглашусь идея очень интересная
Круто! Спасибо за пост! Я как раз подумывал уйти от нативных шаблонов, но остальные шаблонизаторы не слишком упрощали жизнь — шило на мыло…
Очень напоминает джавовский tapestry — tapestry.apache.org/tapestry4.1/usersguide/template.html
phptal очень продвинутый, стройный и лаконичный, при всем этом еще и очень быстрый, сам был немного в шоке после первого применения, но после того как разобрался — подсел капитально, никакого копипаста в нем нет в принципе как нет и инклудов — есть макросы как написали выше и слоты, с помощью этого реализуется наследование:
home.html
layout.html
использую давно, есть пару моих фиксов в исходниках — однозначно рекомендую всем, рад что наконеч на хабре про него написали.
home.html
<?xml version="1.0" encoding="utf-8" ?> <tal:block metal:use-macro="layout/layout" > <tal:block metal:fill-slot="content" tal:condition="not:account"> <!-- основной блок для анонимусов --> </tal:block> <tal:block metal:fill-slot="content" tal:condition="account"> <!-- основной блок для юзеров --> </tal:block> </tal:block>
layout.html
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html metal:define-macro="layout" xmlns="http://www.w3.org/1999/xhtml"> <head > .... </head> <body> <tal:block metal:define-slot="body"> <div> </div> <tal:block metal:define-slot="content" /> </tal:block> </body> </html>
использую давно, есть пару моих фиксов в исходниках — однозначно рекомендую всем, рад что наконеч на хабре про него написали.
попробуйте написать статью, в которой описать эти вещи поподробнее.
а также напишите, чего Вам не хватает в шаблонизаторе,
мне, к примеру, не хватает плагинов.
а также напишите, чего Вам не хватает в шаблонизаторе,
мне, к примеру, не хватает плагинов.
увы, я не могу писать статьи-выдержки из манов, не получается достойно, а в шаблонизаторе мне всего хватает, то чего не хватало — кастомных тайлов реализовал как написано в мане phptal.org/manual/en/split/custom-modifiers.html
можно просто описать пошагово как сделать шаблон на PHPTAL
подобно этому
habrahabr.ru/blogs/django/23132/
подобно этому
habrahabr.ru/blogs/django/23132/
Немного не в тему. Я мало писал на php (и это было очень давно), поэтому для меня было сюрпризом, что есть такой синтаксис:
if($condition):
// blah-blah
endif
Его специально ввели, чтобы в шаблонах не путаться с закрывающими скобками? =)
if($condition):
// blah-blah
endif
Его специально ввели, чтобы в шаблонах не путаться с закрывающими скобками? =)
Пробовал под perl. Жутко тормозная штука.
мне понравился подход — задавать команды атрибутами.
вот решил статью об этом написать.
а если углубляться в подробности — там масса проблем и спорных вещей появляется.
и хочется, чтобы дискуссия была — как улучшить все эти вещи.
никто же не мешает самому написать такой шаблонизатор.
все лучше, чем смарти клоны плодить.
вот решил статью об этом написать.
а если углубляться в подробности — там масса проблем и спорных вещей появляется.
и хочется, чтобы дискуссия была — как улучшить все эти вещи.
никто же не мешает самому написать такой шаблонизатор.
все лучше, чем смарти клоны плодить.
как у него с производительностью то дела обстоят?
отлично обстоят — «компилируется» на лету в php, причем этот код более быстрый по сравнению со смарти и даже dwoo
fabien.potencier.org/article/34/templating-engines-in-php
fabien.potencier.org/article/34/templating-engines-in-php
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Шаблонизатор PHPTAL