这里使用twig 3.0作为样例

<?php
 require_once __DIR__.'/vendor/autoload.php';
 $loader = new \\\\Twig\\\\Loader\\\\ArrayLoader();
 $twig = new \\\\Twig\\\\Environment($loader);
 $template = $twig->createTemplate("Hello {$_GET['name']}!");
 echo $template->render();
?>

观察两次的变化,abgl作为name传参被打印出来

<?php 和 ?>: 这些标记表明这是PHP代码的起始和结束部分。

require_once DIR.'/vendor/autoload.php';: 这行代码引入Twig模板引擎的依赖文件。

DIR 代表当前文件所在的目录,vendor/autoload.php 包含了Twig的自动加载功能,确保Twig类和方法可以在代码中使用。

$loader = new \\Twig\\Loader\\ArrayLoader();: 这行代码创建了Twig模板引擎的一个数组加载器(ArrayLoader)。这意味着模板将从内存中的数组加载而不是从文件系统中加载。

$twig = new \\Twig\\Environment($loader);: 这行代码创建了Twig的环境(Environment)。Twig环境是用于编译和呈现模板的主要对象。它接受加载器(Loader)作为参数,以告诉Twig从哪里加载模板。

$template = $twig->createTemplate("Hello {$_GET['name']}!");: 这行代码使用Twig环境创建了一个模板对象。模板字符串是 "Hello {_GET['name']}!",其中 {_GET['name']} 是一个占位符,用于将来填充数据。

echo $template->render();: 这行代码呈现了Twig模板,并使用 echo 输出结果。Twig会将模板中的占位符 {name} 替换为$_GET['name'] 中的值,从而生成一个包含 "Hello {name}!" 消息的字符串,并将其输出到浏览器。

这里先解释下Twig的一些语法

变量

应用程序将变量传入模板中进行处理,变量可以包含你能访问的属性或元素。你可以使用 . 来访问变量中的属性(方法或 PHP 对象的属性,或 PHP 数组单元),也可以使用所谓的 "subscript" 语法 []

我们上面代码中的name也就是变量,并且正是通过. 来引用autoload.php进而引用Twig中的其它变量和函数

<?php
 require_once __DIR__.'/vendor/autoload.php';
 $loader = new \\\\Twig\\\\Loader\\\\ArrayLoader([
     'index' => 'Hello {{ name }}!',
 ]);
 $twig = new \\\\Twig\\\\Environment($loader);
 echo $twig->render('index', ['name' => 'whoami']);
?>

从这个代码也可以更直观的看到{{name}}将name作为了变量,除此之外,Twig还支持特殊的访问PHP数组特定项的语法