Fenom шаблонизатор для PHP
Fenom — это быстрый и легковесный шаблонизатор для PHP, вдохновленный Smarty, но с более простым синтаксисом и высокой производительностью. Он используется в CMS ModX Revolution (в качестве альтернативы родному шаблонизатору) и других PHP-проектах.
Основные возможности Fenom:
- Простой синтаксис – похож на Smarty, но без избыточности.
- Высокая скорость – компилируется в чистый PHP-код.
- Кэширование – поддерживает кэширование шаблонов.
- Безопасность – экранирование переменных по умолчанию.
- Расширяемость – можно добавлять свои модификаторы, функции, теги.
Синтаксис Fenom
1. Вывод переменных
{$variable} <!-- Простой вывод -->
{$variable|escape} <!-- Экранирование (по умолчанию включено) -->
{$variable|raw} <!-- Без экранирования -->
{$variable|default:"N/A"} <!-- Значение по умолчанию -->
2. Условия (if/else)
{if $age > 18}
<p>Взрослый</p>
{elseif $age > 12}
<p>Подросток</p>
{else}
<p>Ребенок</p>
{/if}
3. Циклы (foreach)
{foreach $items as $item}
<div>{$item.name}</div>
{/foreach}
{foreach $users as $key => $user}
<p>{$key + 1}. {$user.name}</p>
{/foreach}
4. Подключение других шаблонов
{include 'header.tpl'} <!-- Подключение файла -->
{include 'block.tpl' var1=$value} <!-- С передачей переменных -->
5. Фильтры и модификаторы
{$text|upper} <!-- В верхний регистр -->
{$date|date:"d.m.Y"} <!-- Форматирование даты -->
{$number|number_format:2} <!-- Округление числа -->
6. Пользовательские функции и теги
Можно регистрировать свои функции в PHP и вызывать их в шаблоне:
{custom_function param1=$value}
Пример шаблона Fenom
<!DOCTYPE html>
<html>
<head>
<title>{$title|default:"Сайт"}</title>
</head>
<body>
{include 'header.tpl'}
{if $user}
<h1>Привет, {$user.name|escape}!</h1>
{/if}
<ul>
{foreach $products as $product}
<li>{$product.name} - {$product.price|number_format:2} руб.</li>
{/foreach}
</ul>
{include 'footer.tpl'}
</body>
</html>
Как подключить Fenom в PHP?
require_once 'fenom/src/Fenom.php';
// Создаем шаблонизатор
$fenom = Fenom::factory('/path/to/templates', '/path/to/compiled', [
'auto_reload' => true, // Перекомпиляция при изменении шаблона
]);
// Передаем переменные в шаблон
$fenom->display('template.tpl', [
'title' => 'Главная страница',
'user' => ['name' => 'Иван'],
'products' => [
['name' => 'Товар 1', 'price' => 100.50],
['name' => 'Товар 2', 'price' => 200.75],
]
]);
Плюсы Fenom:
✅ Быстрее Smarty за счет компиляции в PHP.
✅ Простота синтаксиса.
✅ Поддержка наследования шаблонов.
✅ Хорошая документация.
Минусы:
❌ Меньше возможностей, чем в Twig или Blade.
❌ Не такой популярный, как другие шаблонизаторы.
Вывод
Fenom – хороший выбор для небольших и средних проектов, где важна скорость и простота. Если вам нужен легковесный, но мощный шаблонизатор без лишних зависимостей, Fenom – отличный вариант. 🚀