| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Libraries > PHP Шаблонизатор |
| Автор: undercloud 23.5.2016, 16:24 |
| Всем доброго дня! Я тут создал новый шаблонизатор для PHP http://undercloud.github.io/ant/. Возможно кому нибудь понравится, интересно Ваше мнение, предложения, баг репорты и т.д. |
| Автор: Евгений Павленко 23.5.2016, 17:57 |
| В чем его преимущества по сравнению с Твигом, etc ? Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/PHP-Shablonizator-id57430527ae201551628b4567#findElement_E7045_57431a53ae2015d275953c77_0 |
| Автор: undercloud 23.5.2016, 18:48 | ||
Отличия конечно есть, есть встроенный итератор состояний http://undercloud.github.io/ant/#control-foreach, отдельный слой логики, HAML, JADE, встроенный валидатор-линтер, синтаксис проще - меньше нагромождения служебных тегов,посмотрите документацию |
| Автор: ksnk 24.5.2016, 21:46 |
| Я правильно понимаю, что в шаблонизаторе нет блоков и макросов, как в твиге или смарти? Наследования шаблонов тоже нет? P.S. неправильно понимаю, наследование с блоками есть |
| Автор: ksnk 25.5.2016, 08:18 |
| Нормальный проект должен содержать тесты и примеры. Иначе его слишком сложно оценивать. |
| Автор: Sentox 25.5.2016, 09:12 |
| Ну так Razor лучше тогда на порядок Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/PHP-Shablonizator-id57430527ae201551628b4567#findElement_E7045_57454266ae2015251a953c9b_0 |
| Автор: ksnk 25.5.2016, 11:11 |
| Sentox, Razor - это тот, который для ASP.NET? Тут, вроде, про php разговор. Хотя синтаксис, на первый взгляд, что-то общее имеет. Буковку @ Основной косяк этого шаблонизатора - выполнение "шаблонных вставок" с помощью eval'а. При таком выборе говорить о хоть о какой то скорости работы уже не приходится. Так что остается только синтаксис. Чем синтаксис лучше синтаксиса твига - не могу понять. Хотя конструкция {{ value or 'пусто'}} мне нравится чуть больше, чем твиговский {{value|default('пусто')}}, хотя еще больше бы нравился {{value || 'пусто'}}, по принятым в Javascript соглашениям... |
| Автор: undercloud 25.5.2016, 11:18 | ||||||||||||
Есть определение собственных функций и расширение синтаксиса Добавлено через 43 секунды
Что такое Razor? Добавлено через 2 минуты и 19 секунд
В планах - сделать онлайн песочницу, а насчет тестирования, оно есть - но не привел к нужному виду и не добавил в коммит Добавлено через 5 минут и 50 секунд
Насчет eval - неправильно поняли, он для исполнения строк-шаблонов объявленных в коде
Добавлено через 7 минут и 3 секунды
Шаблоны кешируются, скорость исполнения === скорость нативных php шаблонов |
| Автор: ksnk 25.5.2016, 13:59 |
| В @if может стоять сложная конструкция, со сравнениями, скобками и так далее? |
| Автор: ksnk 25.5.2016, 14:27 |
| В общем - надо больше примеров. Иначе приходится разбираться в коде по исходникам - даже у меня заряд мазохизма иссяк Насколько я понял - все служебные конструкции с @ тупо и цинично трансформируются строковыми заменами в соответствующие php конструкции. Получившийся файл и используется в качестве php-шаблона. Особенного анализа получившегося текста не производится. Так что несложно сломать шаблон, вставив в тело @if или @for синтаксически неверную конструкцию. Разбираться с файлом и строкой ошибки может оказать непросто. |
| Автор: undercloud 25.5.2016, 15:01 | ||||
абсолютно любая, любая вложенность конструкций Добавлено через 2 минуты и 4 секунды
Вот тут да, согласен - дебажить шаблон будет затруднительно |
| Автор: _zorn_ 25.5.2016, 16:00 |
Тоже самое же Дело только в приоритетах, но кого они волнуют на одной операции ? Это я про пхп. Мы же в пхп ветке да ? Мне наоборот в шаблонах нравится более "человечный" язык. Сам в твиге стараюсь использовать "is not null" вместо "!= null" например. Ну а "|default()"... твиг более требователен к неопределенным переменным. Тут на вкус и цвет. В твиге все это есть. Свой велосипед это конечно хорошо... но хорошо ТОЛЬКО для саморазвития. Предлагать и не дай боже использовать в реальных проектах - однозначные проклятия от поддерживающих этот проект. Тем более если нет реальных преимуществ. |
| Автор: ksnk 25.5.2016, 16:55 |
Нее! Мне больше нравится javascript - синтаксис. Он, как правило, лаконичнее, хотя и не всегда очевиден. Ну а в этом случае - такое использование or вообще может быть вредным для здоровья(как и ||), так как синтаксис выражений внутри условий - чистый php в котором or выдает логический результат а не текстовый, как в "текстовых блоках". Язык внутри шаблона должен быть одним. |