Простой движок шаблонов PHP, который позволяет использовать выражения PHP, изобретенные для создания собственного языка
Я ищу простой PHP шаблонизатор, который позволяет использовать выражения PHP в подстановках. "Идеал MVC", согласно которому шаблоны должны содержать просто простые подстановки переменных, и ничто иное часто не дает результатов, на что обычные системы шаблонов признают и отвечают на них, создавая синтаксис "фильтров переменных" (например, вещей после канала в Smarty), по сути, новый язык программирования.
Когда я хочу сделать небольшую переменную постобработки в шаблоне, я хочу написать {strtolower(trim($a))}
и не {$a|strip|lower}
просто потому, что я не хочу помнить два синтаксиса (и часто два имени) для всего. Я знаю, что им можно злоупотреблять, но я вполне способен присоединиться к MVC, мне не нужен язык, чтобы заставить меня это делать. Это (с использованием выражений на родном языке) является совершенно обычной вещью, например, в шаблонизаторах Python.
С другой стороны, мне не интересен ответ "PHP". Это слишком многословно (и некрасиво) для шаблонов, даже с альтернативным синтаксисом (for:...endfor;
) а также <?=
, Я хочу хороший и простой синтаксис для замены переменных (выражений), for
, if
и т. д. На самом деле это может быть очень тонкий слой синтаксического сахара по сравнению с PHP.
Существует ли что-то похожее на приведенное выше описание?
2 ответа
Вот ссылка на простой движок шаблонов PHP, который я написал: http://hardcoder.nazuka.net/projects/lint/
Если вы хотите использовать выражения php в шаблонах, вы можете использовать сокращенный синтаксис php. Если вы хотите пойти по этому пути, я бы посоветовал вам не использовать систему шаблонов, которая предлагает вам некоторый синтаксический сахар, поскольку вы потеряете подсказки IDE, такие как подсветка синтаксиса и lint.
Например, если вы хотите отобразить переменную, вы можете сделать это:
<h1><?=$name?></h1>
<h2><?=strtolower($name)?></h2>
Для условий:
<?php if(true): ?>
Some markup
<?php endif; ?>
Аналогичный синтаксис можно использовать и для циклов.
Счастливого взлома!