Twig (движок шаблонов)
Оригинальный автор(ы) | Армин Роначер , [1] Фабьен Потенсье |
---|---|
Разработчик(и) | Симфони САС |
Первоначальный выпуск | 12 октября 2009 г. |
Стабильная версия | 3.10.3 [2]
/ 16 мая 2024 г |
Репозиторий | |
Написано в | PHP |
Операционная система | Кросс-платформенный |
Тип | Шаблонизатор |
Лицензия | Лицензия БСД |
Веб-сайт | ветка |
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 %} {% endif %}
{{ item.caption|upper }}
</a>
</li>
{% endfor %}
</ul>
{% endblock navigation %}
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «мицухико/веточка» . 13 августа 2019 г. – через GitHub.
- ^ «Выпуск 3.10.3» . 16 мая 2024 г. Проверено 25 мая 2024 г.
- ^ Jump up to: а б с д «Twig для дизайнеров шаблонов — Документация — Twig — Гибкий, быстрый и безопасный движок шаблонов PHP» . twig.symfony.com .
- ^ "twigphp/Твиг" . 1 июля 2020 г. – через GitHub.
- ^ «Документация Symfony2 — Документация» . 5 августа 2010 г. Архивировано из оригинала 5 августа 2010 г.
- ^ Jump up to: а б с «Фильтры — Документация — Twig — Гибкий, быстрый и безопасный механизм шаблонов PHP» . twig.symfony.com .
- ^ «Расширение Twig - Документация - Twig — Гибкий, быстрый и безопасный механизм шаблонов PHP» . twig.symfony.com .
- ^ «set — Документация — Twig — Гибкий, быстрый и безопасный механизм шаблонов PHP» . twig.symfony.com .
Внешние ссылки
[ редактировать ]- Официальный сайт Твига
- Фабьен Потенсье (07 октября 2009 г.). «Шаблоны в PHP» . Проверено 27 октября 2023 г.