Шаблонизатор Twig
MMO-DEV WEB использует Twig 3.x - современный, быстрый и безопасный шаблонизатор для PHP, разработанный командой Symfony.
Преимущества Twig
- Безопасность - автоматическое экранирование вывода (
autoescape), защита от XSS-атак - Производительность - шаблоны компилируются в оптимизированный PHP-код и кэшируются
- Наследование шаблонов - мощная система
extends/blockдля переиспользования макетов - Чистый синтаксис - лаконичный и читаемый код шаблонов
- Расширяемость - поддержка пользовательских фильтров, функций и тегов
Пространства имён
В MMO-DEV WEB шаблоны организованы по пространствам имён, каждое из которых указывает на свою директорию:
| Пространство | Директория | Описание |
|---|---|---|
@site | templates/site/ | Шаблоны основного сайта |
@admin | templates/admin/ | Шаблоны панели администрирования |
@cabinet | templates/cabinet/ | Шаблоны личного кабинета |
@common | templates/common/ | Общие шаблоны (email, компоненты) |
Использование
Подключение шаблонов
{# Подключение шаблона из конкретного пространства имён #}
{% include '@common/components/pagination.html.twig' %}
{# Наследование от базового макета сайта #}
{% extends '@site/layout.html.twig' %}
{# Подключение шаблона кабинета #}
{% include '@cabinet/partials/sidebar.html.twig' %}
Структура директорий
Функция asset()
Для подключения статических ресурсов (CSS, JS, изображения) используется функция asset() с автоматическим cache busting:
asset()
{# CSS #}
<link rel="stylesheet" href="{{ asset('css/style.css') }}">
{# Результат: /css/style.css?v=1a2b3c4d #}
{# JavaScript #}
<script src="{{ asset('js/app.js') }}"></script>
{# Изображения #}
<img src="{{ asset('images/logo.png') }}" alt="Logo">
Параметр версии (?v=...) добавляется автоматически на основе хеша файла, что гарантирует обновление кэша браузера при изменении файла.
Расширение файлов
Шаблоны используют расширение .html.twig (двойное расширение):
- Первая часть (
.html) указывает формат вывода - Вторая часть (
.twig) указывает шаблонизатор
Официальная документация
Полная документация Twig доступна на официальном сайте: twig.symfony.com