Fenom — yet another PHP template engine
4 июля 2013
На хабре выложили анонс шаблонизатора Fenom. К необходимости использования PHP-шаблонизаторов я отношусь довольно скептически. То ли мне не попадаются проекты, где конечному пользователю нужно дать доступ к шаблонам, то ли расстраивают накладные расходы... в общем, не сложилось у меня с ними.
Однако, Fenom порадовал. Выделяется он, как минимум, двумя вещами: производительностью и подходом. Автор плотно поработал над архитектурой и получил меньшее, чем у Smarty и Twig, количество классов и кода, меньшее потребление памяти и лучшую производительность.
Комментарии RSS по email OK
Ссылочку бы на гитхаб добавил, а то вдруг с Хабра статью выпилят
Spider, сомневаюсь, что выпилят, но на всякий случай добавил.
никогда не понимал смысл от дополнительного шаблонизатора по идее это должно упростить работу пользователя. но пользователь осиливший смарти вполне успешно справляется с условиями в php. да и когда это пользователю давали прямой доступ к редактированию шаблонов? это ведь почти самоубийство
может делало вид кода менее топорным? ну в случае
<?=$title?>
={$title}
может и да, но чем дальше тем хитрожопее код для шаблонизатора и вся "красота", в лучшем случае, ограничивается заменой<?php
на фигурную скобкуи как бонус — нагрузка
Аналогично... Никогда не понимал, чем вот это
лучше вот этого
P.S. Код набирал "на коленке", показать общую идею...
@BOLVERIN, @SecondFrog
Прежде чем писать о непонимании смысла шаблонизации не проще ли погуглить на тему зачем нужны шаблонизаторы, а также какие задачи и проблемы они решают. Если вы с такими задачами и проблемами ещё не сталкивались, то это не значит что шаблонизаторы совсем не нужны.
@BOLVERIN
Ну у кого самоубийство, у кого нет. Есть понятие secure templates, где через шаблон никаких деструктивных действий системе нанести не возможно.
@Sam
Значительно меньшее количество классов и кода ;)
Поддерживаю полностью автора поста, шаблонизаторы -говно. PHP сам по себе, отличный шаблонизатор, какие есть ярко выраженные недостатки у альтернативного синтаксиса управляющих конструкций?
Собрал Yii Fenom view renderer: www.yiiframework.ru/forum/viewtopic.php?uid=881&f=9&t=13087&start=0
Замечания, правки и предложения приветствуются :-)
Автор сказал, что всего лишь прохладен к шаблонизаторам. Я думаю если бы он сказал неполиткорректно, что все они говно, то в комментах бы началась небольшая гражданская война )
Небезопасность, многословность.
это все не существенно
@Dmitry А что тогда вообще для вас есть понятие "существенно" ?
Никак не могу найти как передавать данные(переменные) в шаблон(ищу аналог assign\append из smarty)? или передать можно только при создании объекта или рендеринге ?
Шаблонизаторы в первую очередь для коммерческих cms т.к. верстальщикам\сеошникам не хватает навыков для работы с нативными видами, а декоративный код шаблонизаторов они вполне усваивают. Кто-то скажет это их проблемы, но не стоит забывать, что речь о коммерческих проектах и чем они проще в обслуживании(а значит вокруг них крутится больше "разработчиков"), тем больше покупателей.
Сам я использую допиленный под себя raintpl, тоже очень маленький и шустрый + названия методов схожи со smarty.
В проектах имеющих сложную структуру очень сложно работать\разбираться в нативных вьюхах - менее читабельно и более грамостко. По поводу производительности у меня в 70% отрабатывает либо первичный(php код созданный на основе tpl), либо вторичный(html) кеш, так что особой нагрузки со стороны даже такого тяжеловеса как смарти я особо нигде не ощутил. Тем более никто не мешает кастомизовать шаблонизатор под себя отключив весь ненужный функционал.
Оставляя за рамками обсуждения разделение прав на редактирование шаблона и выполнение PHP на сервере - мне просто удобней и приятней верстать страницы с использованием шаблонизаторов.
Код - сравните это
и это
Тут некоторые скажут - да это какая-то фигня, ескейпать так не будем - для этого спец функция будет, вы начнёте добавлять автоэскейп, свои короткие функции для прочих рутинных операций... - ну, дорогие, тогда вы начинаете писать свой шаблонизатор :)... свй велосипед...