📜  twig 设置为变量 (1)

📅  最后修改于: 2023-12-03 15:20:41.845000             🧑  作者: Mango

Twig 模板引擎

简介

Twig 是一个现代化的模板引擎,适用于多种语言和平台,它是 Symfony 框架的模板引擎之一,也是 Drupal8 的默认模板引擎。

Twig 强调模板的易读性和可重用性,同时提供强大的模板继承、扩展和过滤器功能。Twig 通过使用安全的模板语言和沙盒机制,确保你的应用程序不会遭受 XSS、SQL 注入、本地代码执行等攻击。

特性
  • 模板继承:可以轻松地使用模板布局来扩展其它模板。
  • 注释:轻松地添加注释来帮助你的团队成员可以理解代码。
  • 过滤器:可以对模板变量应用过滤器,以便在呈现之前进行格式转换或大小写转换,或者对数据进行语言翻译。
  • 表达式语言:可让您在模板中进行数学运算、字符串连接和其他繁重的逻辑操作。
  • 安全性:沙盒机制和自动转义保护您的应用程序免受 XSS 和 SQL 注入等攻击。
  • 可扩展性:可以自定义扩展条件、函数、过滤器和标签,以适应您的应用程序。
使用

Twig 可以在基于 PHP 的框架中使用,也可以用作独立的组件在任何 PHP 应用程序中使用。

在 Symfony 4 中使用 Twig

Symfony 4 默认集成了 Twig,您无需再配置它。您可以在 templates 目录下创建 Twig 模板,并在 Symfony 控制器中简单地返回它。

// 调用模板文件
public function viewAction()
{
    $name = 'Foo';

    return $this->render('hello.html.twig', [
        'name' => $name,
    ]);
}

在 Twig 模板中,您可以渲染这个变量:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>{{ name }}</title>
    </head>
    <body>
        <h1>Hello {{ name }}!</h1>
    </body>
</html>
在 Laravel 5 中使用 Twig

Laravel 并没有内置 Twig,但是由于 Laravel 支持将非 Laravel 模块作为扩展包使用,所以可以通过安装 Twig Bridge 来将 Twig 集成到 Laravel 5 程序中。

可以使用 Composer 安装:

composer require twigbridge/laravel

安装后,您可以在 config/app.php 中添加提供者 TwigBridge\ServiceProvider 和别名 'Twig' => TwigBridge\Facade\Twig::class

'providers' => [
		
    ...

    // Twig 模板引擎提供者
    TwigBridge\ServiceProvider::class,
],

'aliases' => [

    ...

    // Twig Facade 别名
    'Twig' => TwigBridge\Facade\Twig::class,
],
建议阅读