Twig

灵活、快速且安全的
PHP 模板引擎

a Symfony Product
Docs 简介
您正在阅读 Twig 3.x 的文档。切换到 Twig 1.x, 2.x 的文档。

问题和反馈

许可证

Twig 文档 基于新的 BSD 许可证 许可。

简介

欢迎阅读 Twig 的文档,Twig 是灵活、快速且安全的 PHP 模板引擎。

Twig 坚持 PHP 的原则,并添加了对模板环境有用的功能,因此对设计师和开发者都很友好。

主要特点是...

  • 快速:Twig 将模板编译成纯粹的优化 PHP 代码。与常规 PHP 代码相比,开销已降至最低。
  • 安全:Twig 具有沙箱模式来评估不受信任的模板代码。这使得 Twig 可以用作应用程序的模板语言,在这些应用程序中,用户可以修改模板设计。
  • 灵活:Twig 由灵活的词法分析器和解析器驱动。这允许开发者定义他们自己的自定义标签和过滤器,并创建他们自己的 DSL。

许多开源项目都在使用 Twig,例如 Symfony、Drupal8、eZPublish、phpBB、Matomo、OroCRM;许多框架也支持它,例如 Slim、Yii、Laravel 和 Codeigniter——仅举几例。

屏幕录像

喜欢通过视频教程学习?查看 SymfonyCasts Twig 教程

先决条件

Twig 3.x 需要至少 PHP 8.1.0 才能运行。

安装

安装 Twig 的推荐方式是通过 Composer

1
composer require "twig/twig:^3.0"

基本 API 用法

本节简要介绍 Twig 的 PHP API

1
2
3
4
5
6
7
8
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 也自带文件系统加载器

1
2
3
4
5
6
$loader = new \Twig\Loader\FilesystemLoader('/path/to/templates');
$twig = new \Twig\Environment($loader, [
    'cache' => '/path/to/compilation_cache',
]);

echo $twig->render('index.html.twig', ['name' => 'Fabien']);