Skip to content

Русская документация по шаблонизатору Twig

Notifications You must be signed in to change notification settings

isildur-01/twig-docs-ru

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 

Repository files navigation

О Twig

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

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

Зачем нужен еще один шаблонизатор?

Twig использует гибко настраиваемые лексический и грамматический анализаторы. Это позволяет разработчику определять свои теги и фильтры, создавать собственный DSL.

  • Краткость:Язык PHP многословен и даже слишком многословен, когда надо экранировать вывод данных:

    <?php echo $var ?>
    <?php echo htmlspecialchars($var, ENT_QUOTES, 'UTF-8') ?>
    

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

    {{ var }}
    {{ var|escape }}
    {{ var|e }}         {# сокращение для escape #}
  • Ориентированный на шаблоны синтаксис:Twig имеет сокращения для многих общих паттернов, например, отображение текста по умолчанию, если вы перебираете пустой массив:

    {% for user in users %}
        * {{ user.name }}
    {% else %}
        Пользователи не найдены.
    {% endfor %}
  • Полнофункциональный:Twig поддерживает все, что вам надо для использования шаблонов: множественное наследование, блоки, автоматическое экранирование и многое другое:

    {% extends "layout.html" %}
    
    {% block content %}
        Содержимое страницы...
    {% endblock %}
  • Легок в изучении:Синтаксис просто изучить и оптимален для верстальщиков, что позволяет им быстро выполнять свою работу.

Конечно, для PHP написано большое число шаблонизаторов. Но большинство из них написаны под PHP4 и не используют лучшие практики разработки:

  • Расширяемость:Twig - гибкий движок для любых ваших потребностей, даже самых сложных. Благодаря открытой архитектуре, вы можете определять новые языковые конструкции (тэги и фильтры) для создания своего собственного DSL.

  • Юнит-тестирование:Twig полностью покрыт тестами. Библиотека стабильна и готова к использованию в больших проектах.

  • Документация:Twig полностью документирован, вся документация доступна на сайте, и, конечно, имеет полное описание API.

  • Безопасность:В отношении безопасности, Twig имеет несколько совершенно уникальных особенностей:

    • Автоматическое экранирование вывода:Для безопасного вывода данных, вы можете включить экранирование как глобально, так и для отдельных блоков:

      {% autoescape on %}
      {% var %}
      {% var|safe %}     {# var не экранируется #}
      {% var|escape %}   {# var не экранируется дважды #}
      {% endautoescape %}
    • Песочница:Twig позволяет использовать для любого шаблона "песочницу", где пользователи имеют ограниченный набор тэгов, фильтров и методов объектов, определенных разработчиком. Режим "песочницы" может быть включен как глобально, так и локально, для определенных шаблонов:

      {{ include "user.html" sandboxed }}
  • Чистые сообщения об ошибках:Каждый раз, когда у вас возникают синтаксические ошибки в шаблоне, Twig выводит сообщение о имени файла с ошибкой и номере строки, которая ее вызвала. Это очень упрощает отладку.

  • Быстрый:Одна из целей создания Twig - сделать его таким быстрым как только можно. Для достижения максимальной скорости работы, Twig компилирует шаблоны в оптимизированный PHP код. Использование памяти по сравнению с обычным PHP кодом сведено к минимуму.

Кто создал Twig?

Twig написан Fabien Potencier, создателем фреймворка Symfony. Twig распространяется по новой лицензии BSD.

About

Русская документация по шаблонизатору Twig

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published