Простой движок шаблонов 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; ?>

Аналогичный синтаксис можно использовать и для циклов.

Счастливого взлома!

Другие вопросы по тегам