BMC IO DocsBMC IO Docs
IO v6
IO v7
Notes
Docs
IO v6
IO v7
Notes
Docs
  • IO Framework v6

    • О фреймворке
    • Уроки
    • Структура
    • Доступ к участкам проекта
    • Старые версии фреймворка
    • Разворачивание нового проекта
  • Backend

    • Функции фреймворка
    • Настройки проекта (app/i.php)
    • Настройки composer
    • Глобальные переменные
    • Константы фреймворка
    • Event класс
    • IOCore класс
    • Controller и работа с ними
    • Class и работа с ними
    • Model и работа с ними
    • View и работа с ними
    • Мультиязычность и словарь фраз
    • Bin скрипты и работа с ними
    • Cron скрипты и работа с ними
    • $ioSession и работа с сессией
    • $ioSession->user и работа с пользователем
    • $ioHash и работа с кешем
    • $ioXCache и работа с кешем
    • $iodb и работа с базой данных
  • Frontend

    • Twig шаблонизатор и работа с ним
    • Twig функции
    • Twig фильтры
    • JS плагины
    • Отложенная загрузка JS скриптов
    • Обращение к Model через JS
  • Примеры

    • AutoIncrement, зависящий от полей

IO v6. Twig шаблонизатор и работа с ним

  • Ссылки
  • Описание

Ссылки

  • Официальная документация Twig v1

Описание

Twig — современный шаблонизатор для PHP.

  • Быстрый: Twig компилирует шаблоны до простого оптимизированного кода PHP. Накладные расходы по сравнению с обычным кодом PHP были сведены к минимуму.
  • Безопасный: Twig имеет режим песочницы для оценки ненадежного кода шаблона. Это позволяет использовать Twig в качестве языка шаблонов для приложений, в которых пользователи могут изменять дизайн шаблона.
  • Гибкий: Twig работает на основе гибкого лексера и парсера. Это позволяет разработчику определять собственные теги и фильтры, а также создавать собственный DSL.

Чем Twig лучше PHP в качестве шаблонизатора?

Когда дело доходит до шаблонизаторов в PHP, многие скажут вам, что PHP сам по себе является шаблонизатором. Но даже если PHP начинал свою жизнь как язык шаблонов, он не развивался как таковой в последние годы. По сути, он не поддерживает многие функции, которые должны быть у современных шаблонизаторов в настоящее время:

  • Краткий: язык PHP многословен и становится смехотворно многословным, когда дело доходит до экранирования вывода:
<?php echo $var ?>
<?php echo htmlspecialchars($var, ENT_QUOTES, 'UTF-8') ?>

Для сравнения, Twig имеет очень лаконичный синтаксис, что делает шаблоны более читабельными:

{{ var }}
{{ var|escape }}
{{ var|e }}         {# shortcut to escape a variable #}
  • Синтаксис, ориентированный на шаблоны. В Twig предусмотрены сокращения для распространенных шаблонов, например, для отображения текста по умолчанию при итерации по пустому массиву:
{% for user in users %}
    * {{ user.name }}
{% else %}
    No users have been found.
{% endfor %}
  • Полнофункциональный: Twig поддерживает все необходимое для простого создания мощных шаблонов: множественное наследование, блоки, автоматическое экранирование вывода и многое другое:
{% extends "layout.html" %}

{% block content %}
    Content of the page...
{% endblock %}
  • Легко освоить: синтаксис прост в освоении и оптимизирован, чтобы позволить веб-дизайнерам быстро выполнять свою работу, не мешая им.

Конечно, PHP — это также язык, для которого вы можете найти больше проектов шаблонизаторов. Но большинство из них пока не принимают лучшие практики веб-разработки:

  • Расширяемый: Twig достаточно гибок для всех ваших потребностей, даже самых сложных. Благодаря открытой архитектуре вы можете реализовать собственные языковые конструкции (теги, фильтры, функции и даже операторы) для создания собственного DSL.
  • Модульное тестирование: Twig полностью модульное тестирование. Библиотека стабильна и готова к использованию в крупных проектах.
  • Документация: Twig полностью документирован, имеется специальная онлайн-книга и, конечно же, полная документация по API.
  • Чистые сообщения об ошибках: всякий раз, когда у вас возникает проблема с синтаксисом в шаблоне, Twig выводит полезное сообщение с именем файла и номером строки, где возникла проблема. Это значительно облегчает отладку.
  • Быстрый: Одна из целей Twig — быть максимально быстрым. Чтобы достичь максимально возможной скорости, Twig компилирует шаблоны в простой оптимизированный PHP-код. Накладные расходы по сравнению с обычным PHP-кодом были сведены к минимуму.
  • Безопасность: Что касается безопасности, Twig обладает рядом уникальных особенностей.

Особенности:

  • Автоматическое экранирование вывода : Чтобы обезопасить себя, вы можете включить автоматическое экранирование вывода глобально или для блока кода:
  {% autoescape "html" %}
    {{ var }}
    {{ var|raw }}     {# var won't be escaped #}
    {{ var|escape }}  {# var won't be doubled-escaped #}
{% endautoescape %}
  • Песочница : Twig может оценить любой шаблон в среде песочницы, где пользователь имеет доступ к ограниченному набору тегов, фильтров и методов объектов, определенных разработчиком. Песочница может быть включена глобально или локально только для некоторых шаблонов:
{{ include('page.html', sandboxed = true) }}
Next
Twig функции