PHP I Шаблонизатор своими руками.

4.3K
.
Koenig, да, только хелперы часто добавляются в шаблон динамически, а методы захардкожены
.
(\/)____o_O____(\/)
Delphinum, кстати примеров не много у тебя в репе там
.
Koenig, ну мне кажется двух примеров достаточно: как рендерит в целом и как добавить хелпер - не?
.
(\/)____o_O____(\/)
Delphinum, ну возможно, но сразу и не разберешь, а почему ты сказал про мой шаблонизатор, что так нельзя делать?
.
Koenig, я про твой шаблон говорил, не про шаблонизатор. Шаблон должен быть на HTML с вкраплениями некой простейшей логики типа: условия, циклы и вставка данных - не более. А у тебя там куча echo, зачем они тебе?
.
AlkatraZ
╭∩╮ (`-`) ╭∩╮
# Delphinum (26.12.2016 / 22:23)
Koenig, я про твой шаблон говорил, не про шаблонизатор. Шаблон должен быть на HTML с вкраплениями некой простейшей логики типа: условия, циклы и вставка данных - не более. А у тебя там куча echo, зач
Вот с этим полностью согласен.
Изначально, шаблон - это простая HTML страница. И уж потом ты начинаешь туда вставлять куски РНР кода чтоб оживить страницу.

И не читай быдолстатьи (я такие встречал), где критикуют краткое echo в виде <?= ?> это писали неопытные люди и очень давно. на данный момент. руководствуйся стандартами кодирования Zend и PSR
З.Ы.
Это я для Koenig писал
.
Если бы не верстальщики, я бы давно новые проекты делал на XSLT-шаблонизации, ибо вещь крутая, удобная, довольно простая если научиться, при этом крайне гибкая и вообще не мусорит в разметку
.
╭∩╮ (`-`) ╭∩╮
# Delphinum (26.12.2016 / 22:30)
Если бы не верстальщики, я бы давно новые проекты делал на XSLT-шаблонизации, ибо вещь крутая, удобная, довольно простая если научиться, при этом крайне гибкая и вообще не мусорит в разметку
Ну я бы не сказал...
Да, интересная вещь, но по сути дела, давай логически раскинем мозгами...
===
Браузеру отдается HTML страница.
Соответственно, на сервере она должна быть как то сформирована...
Вполне логично, если шаблон представляет из себя обычный HTML код, его НАМНОГО легче отлаживать визуально, пилить всякие стили и другие навороты. Любые IDE с подсветкой синтаксиса и автоподстановкой вообще облегчают работу, с HTML работают практически все.

Ну а далее, отладив визуально страницу, мы начинаем ее "одивлять" и добавлять интерактивность в виде вставки в нужных местах РНР (или Twig) кода.
.
AlkatraZ, выгода XSLT будет заметна, если допускается нестандартный синтаксис. В этом случае на уровне XML+XSLT реализуются нестандартные узлы некоторой структуры (на пример узел для вставки загрузчика картинок со встроенным кропольщиком и предпросмотром) и просто вставляются в шаблон вида:
<imageLoader/>

Очень облегчает переносимость блоков, что в противном случае пришлось бы реализовывать в виде:
<?= include("blocks/img_loader.php") ?>

или копипастить разметку блока при каждом использовании (а значит и при изменении разметки придется искать и менять все его копии)
.
╭∩╮ (`-`) ╭∩╮
# Delphinum (26.12.2016 / 22:39)
AlkatraZ, выгода XSLT будет заметна, если допускается нестандартный синтаксис. В этом случае на уровне XML+XSLT реализуются нестандартные узлы некоторой структуры (на пример узел для вставки загрузчи
Да, но обычно такие дела решаются с помощью JS.
Хотя с внедрением HTML 5 открылось много новых возможностей, возможно именно поэтому актуальность XSLT заметно упала (может не ошибусь, если через год-два вообще вымрет)
Всего: 125