WordPress DemoSite

Тестовый сайт для экспериментов и демонстраций возможностей

Fenom шаблонизатор для PHP

Fenom — это быстрый и легковесный шаблонизатор для PHP, вдохновленный Smarty, но с более простым синтаксисом и высокой производительностью. Он используется в CMS ModX Revolution (в качестве альтернативы родному шаблонизатору) и других PHP-проектах.


Основные возможности Fenom:

  1. Простой синтаксис – похож на Smarty, но без избыточности.
  2. Высокая скорость – компилируется в чистый PHP-код.
  3. Кэширование – поддерживает кэширование шаблонов.
  4. Безопасность – экранирование переменных по умолчанию.
  5. Расширяемость – можно добавлять свои модификаторы, функции, теги.

Синтаксис 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 – отличный вариант. 🚀

Полный стэк: .NET | Agile | AJAX | AMQP | Android | api | Bash | Bootstrap | C++ | cms | Composer | css | Data | Elasticsearch | email | ERP | ESP32 | Fenom | Git | GraphQL | Gulp | JavaScript | JetStream | Joomla | js | Kotlin | Laravel | Lean | LEMP | Linux | LMS | Markdown | MODX | Moodle | MySQL | NATS | Nginx | Node.js | OpenCart | Parsedown | PHP | Python | RabbitMQ | Scrum | SCSS | SEO | Simpla | SLA | SOAP | Sphinx | SQL | startup | Swift | Symfony | Tailwind | Translation | Twig | Ubuntu | Unit | W3C | Waterfall | web3 | Webasyst | Webpack | WebSocket | Wishlist | WooCommerce | WordPress | XML | Автоматизация | Безопасность | Бизнес | блокчейн | Вёрстка | движок | ИИ | интернет-магазин | ЛК | Руководство | ТЗ | фреймворк | шаблонизатор | Яндекс.Трекер