我可以在独立项目中使用twig模板引擎吗,例如在1000个html页面上设计更多,即站点充满静态页面,如果你有任何简单的例子,我会感谢你
3 回答
我发现这个 Sitepoint 教程非常简单。我已经简化并总结了这些步骤:
它假定有基本的命令行和Composer知识。
安装 Twig - Composer 对大多数人来说可能是最简单的方法。
composer require twig/twig
在您的 docroot 中运行。这将创建一个composer.json
andcomposer.lock
如果你还没有它们,以及vendor
Composer 将下载 Twig 和它使用的几个 Symfony 依赖项的目录。Composer 还会生成一些自动加载文件。为你的 Twig 源文件创建一个
templates
目录(为了安全起见,我个人喜欢把它放在 docroot 之上)- 在该目录中创建示例
index.html.twig
模板 - 创建一个
bootstrap.php
文件(几行 PHP 来加载和初始化 Twig(并告诉它在哪里可以找到模板) - 创建一个
index.php
文件来演示加载和解析模板。这个:- 加载引导程序
- 定义一些数据(在数组中)以填充模板中的标签
- 使用 Twig 的render()方法,指定模板和数据数组
在浏览器中访问第二个 PHP 文件,您应该会得到一个渲染的 Twig 模板。
boostrap.php:
<?php
// Load our autoloader
require_once __DIR__.'/vendor/autoload.php';
// Specify our Twig templates location
$loader = new Twig_Loader_Filesystem(__DIR__.'/../templates');
// Instantiate our Twig
$twig = new Twig_Environment($loader);
索引.php:
<?php
require_once __DIR__.'/bootstrap.php';
// Sample data
$foo = [
[ 'name' => 'Alice' ],
[ 'name' => 'Bob' ],
[ 'name' => 'Eve' ],
];
// Render our view
echo $twig->render('index.html', ['foo' => $foo] );
模板/index.html.twig:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Twig Example</title>
</head>
<body>
<ul>
{% for item in foo %}
<li>{{ item.name }}</li>
{% endfor %}
</ul>
</body>
</html>
下一阶段是将您的 index.php 修改为适当的“前端控制器”,以便它可以处理多个模板。
本教程还提到了缓存生成的模板等内容。
是的,你可以使用它。查看有关如何使用您的项目进行设置的文档。
我今天确实试图找出它是如何工作的,因为官方文档并不完美......所以我找到了解决方案。
简单的结构:
twig/app/app.php
twig/vendor (使用文档中的 composer 创建) twig/views/page.html.twig
应用程序.php:
<?php require_once '../vendor/autoload.php';
use Twig\Loader\FilesystemLoader;
use Twig\Environment;
$loader = new FilesystemLoader('../views/');
$twig = new Environment($loader);
echo $twig->render('page.html.twig', ['text' => 'Fabien']);
page.html.twig:
<h1>Hello {{ text }}</h1>