Jump to content

Twig (движок шаблонов)

Ветка
Оригинальный автор(ы) Армин Роначер , [1] Фабьен Потенсье
Разработчик(и) Симфони САС
Первоначальный выпуск 12 октября 2009 г. ( 12.10.2009 )
Стабильная версия
3.10.3 [2] / 16 мая 2024 г .; 2 месяца назад ( 16 мая 2024 г. )
Репозиторий
Написано в PHP
Операционная система Кросс-платформенный
Тип Шаблонизатор
Лицензия Лицензия БСД
Веб-сайт ветка .symfony

Twig — это шаблонизатор для языка программирования PHP . Его синтаксис основан на шаблонах Jinja и Django . [3] Это продукт с открытым исходным кодом [4] лицензируется по лицензии BSD и поддерживается Фабьеном Потенсье. Первоначальную версию создал Армин Ронахер . Фреймворк Symfony PHP поставляется с встроенной поддержкой Twig в качестве механизма шаблонов по умолчанию, начиная с версии 2. [5]

Тот же язык шаблонов используется механизмом шаблонов Nunjucks, поэтому Nunjucks также поддерживается следующими инструментами.

  • Сложный поток управления
  • Автоматический выход
  • Наследование шаблонов
  • Переменные фильтры [6]
  • поддержка i18n (gettext)
  • Макросы
  • Полностью расширяемый [3] [7]

Twig поддерживается следующими интегрированными средами разработки : [3]

  • Eclipse через плагин Twig
  • Komodo и Komodo Edit через режим выделения/проверки синтаксиса Twig
  • NetBeans через плагин синтаксиса Twig (до версии 7.1, встроенный с версии 7.2)
  • PhpStorm (родной начиная с версии 2.1)
  • IntelliJ IDE, включая WebStorm, через плагин

И текстовые редакторы:

  • Atom через PHP-ветку для атома
  • Emacs через web-mode.el
  • Notepad++ через Notepad++ Twig Highlighter
  • Sublime Text через пакет Twig
  • TextMate через пакет Twig
  • Vim через плагин синтаксиса Jinja или плагин vim-twig.
  • Скобки через Brackets Twig
  • Код Visual Studio через расширение Twig
  • GTKSourceView через определение языка Twig
  • Coda через синтаксический режим Twig
  • Coda 2 через другой синтаксический режим Twig
  • SubEthaEdit через синтаксический режим Twig

Синтаксис

[ редактировать ]

Twig определяет три типа разделителей:

  • {{ ... }}, чтобы распечатать содержимое переменных или результат вычисления выражения (например: унаследованный шаблон Twig с {{ parent() }}).
  • {# ... #}, для добавления комментариев в шаблоны. Эти комментарии не включаются в отображаемую страницу.
  • {% ... %}, для выполнения операторов, таких как циклы for.
    • {% set foo = 'bar' %}, назначить. [8]
    • {% if i is defined and i == 1%} ... {% endif %}: состояние.
    • {% for i in 0..10 %} ... {% endfor %}: счетчик в цикле.

Апостроф (') является escape-символом.

Чтобы создать итеративный массив:

{% set myArray = [1, 2] %}

Ассоциативный массив:

{% set myArray = {'key': 'value'} %}

Приоритет операторов

[ редактировать ]

Приоритет операторов: [3] от меньшего к большему приоритету:

Оператор Роль
группа Побитовое И
b-xor Побитовое исключающее ИЛИ
б-или Побитовое ИЛИ
или Или
и И
== Равен?
!= Отличается?
< Низший
> Начальство
>= Высший или равный
<= Низший или равный
в В
спички Соответствует
начинается с Начинается с
заканчивается Заканчивается к
.. Последовательность (например: 1..5)
+ Плюс
- Меньше
~ Конкатенация
* Умножение
/ Разделение
// Деление округлено в меньшую сторону
% Модуль
является Тест (например: is defined или is not empty)
** Власть
| Фильтр [6]
[] Запись массива
. Атрибут или метод объекта (например: country.name)

Фильтры обеспечивают некоторую обработку выражения, если они расположены после него и разделены вертикальной чертой. Например: [6]

  • capitalize: меняет первую букву строки на заглавную.
  • upper: меняет всю строку на заглавную.
  • first: отображает первую строку массива.
  • length: возвращает переменный размер.

Специальные переменные

[ редактировать ]
  • loop содержит информацию о текущем цикле. Например loop.index соответствует количеству уже произошедших итераций.
  • Глобальные переменные начинаются с подчеркивания. Например:
    • _route (часть URL, расположенная после домена)
    • _self (текущее имя файла)
    Итак, к маршруту страницы: {{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}
  • CGI Переменные среды , такие как {{ app.request.server.get('SERVER_NAME') }}.

Пример ниже демонстрирует некоторые основные функции Twig.

{% extends "base.html" %}
{% block navigation %}
    <ul id="navigation">
    {% for item in navigation %}
        <li>
            <a href="{{ item.href }}">
                {% if item.level == 2 %}&nbsp;&nbsp;{% endif %}
                {{ item.caption|upper }}
            </a>
        </li>
    {% endfor %}
    </ul>
{% endblock navigation %}

См. также

[ редактировать ]
  1. ^ «мицухико/веточка» . 13 августа 2019 г. – через GitHub.
  2. ^ «Выпуск 3.10.3» . 16 мая 2024 г. Проверено 25 мая 2024 г.
  3. ^ Jump up to: а б с д «Twig для дизайнеров шаблонов — Документация — Twig — Гибкий, быстрый и безопасный движок шаблонов PHP» . twig.symfony.com .
  4. ^ "twigphp/Твиг" . 1 июля 2020 г. – через GitHub.
  5. ^ «Документация Symfony2 — Документация» . 5 августа 2010 г. Архивировано из оригинала 5 августа 2010 г.
  6. ^ Jump up to: а б с «Фильтры — Документация — Twig — Гибкий, быстрый и безопасный механизм шаблонов PHP» . twig.symfony.com .
  7. ^ «Расширение Twig - Документация - Twig — Гибкий, быстрый и безопасный механизм шаблонов PHP» . twig.symfony.com .
  8. ^ «set — Документация — Twig — Гибкий, быстрый и безопасный механизм шаблонов PHP» . twig.symfony.com .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 59c033abdb5fe6dbfbce4d8b863325a2__1698407220
URL1:https://arc.ask3.ru/arc/aa/59/a2/59c033abdb5fe6dbfbce4d8b863325a2.html
Заголовок, (Title) документа по адресу, URL1:
Twig (template engine) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)