Введение
Добро пожаловать в документацию для Twig, гибкого, быстрого и безопасного движка шаблонов для PHP.
Twig дружелюбен как для дизайнеров, так и для разработчиков, придерживаясь принципов PHP и добавляя функциональность, полезную для сред шаблонов.
Ключевые особенности:
- Быстрый: Twig компилирует шаблоны в оптимизированный PHP-код. Накладные расходы по сравнению с обычным PHP-кодом сведены к минимуму.
- Безопасный: Twig имеет режим песочницы для оценки недоверенного кода шаблона. Это позволяет использовать Twig в качестве языка шаблонов для приложений, где пользователи могут изменять дизайн шаблона.
- Гибкий: Twig поддерживается гибким лексером и анализатором. Это позволяет разработчикам определять собственные пользовательские теги и фильтры, а также создавать собственный DSL.
Twig используется во многих проектах с открытым исходным кодом, таких как Symfony, Drupal8, eZPublish, phpBB, Matomo, OroCRM; а также многие фреймворки поддерживают его, такие как Slim, Yii, Laravel и Codeigniter — это лишь некоторые из них.
Предварительные требования
Для работы Twig 1.x требуется как минимум PHP 7.2.5.
Установка
Рекомендуемый способ установки Twig — через Composer:
composer require "twig/twig:^1.0"
Примечание
Чтобы узнать больше о других методах установки, прочитайте главу установка; в ней также объясняется, как установить расширение Twig C.
Базовое использование API
Этот раздел предоставляет краткое введение в PHP API для Twig:
require_once '/path/to/vendor/autoload.php';
$loader = new \Twig\Loader\ArrayLoader([
'index' => 'Hello {{ name }}!',
]);
$twig = new \Twig\Environment($loader);
echo $twig->render('index', ['name' => 'Fabien']);
Twig использует загрузчик (\Twig\Loader\ArrayLoader) для поиска шаблонов и среду (\Twig\Environment) для хранения своей конфигурации.
Метод render() загружает шаблон, переданный в качестве первого аргумента, и отображает его с переменными, переданными в качестве второго аргумента.
Поскольку шаблоны обычно хранятся в файловой системе, Twig также поставляется с загрузчиком файловой системы:
$loader = new \Twig\Loader\FilesystemLoader('/path/to/templates');
$twig = new \Twig\Environment($loader, [
'cache' => '/path/to/compilation_cache',
]);
echo $twig->render('index.html', ['name' => 'Fabien']);
© 2009–2018 by the Twig Team
Licensed under the three clause BSD license.
The Twig logo is © 2010–2020 Symfony
https://twig.symfony.com/doc/1.x/intro.html