我可以在独立项目中使用twig模板引擎,例如在1000 html页面上设计更多内容,即网站已满静态页面,如果你有任何简单的例子我会感谢你
答案 0 :(得分:6)
我发现this Sitepoint tutorial非常简单。我已经简化并总结了步骤:
它假定您具有基本的命令行和Composer知识。
安装Twig-Composer是大多数人最简单的方法。在您的文档根目录中运行composer require twig/twig
。如果您还没有composer.json
和composer.lock
,则会创建一个vendor
目录,Composer将在其中下载Twig及其使用的两个Symfony依赖项。 Composer还将生成一些自动加载文件。
为您的Twig源文件创建一个templates
目录(出于安全考虑,我个人希望将此目录放在docroot之上)
index.html.twig
模板bootstrap.php
文件(几行PHP来加载和初始化Twig(并告诉它在哪里可以找到模板)index.php
文件以演示加载和解析模板。这个:
在浏览器中访问第二个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);
index.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] );
templates / 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修改为适当的“前端控制器”,使其可以处理多个模板。
本教程还提到了诸如缓存生成的模板之类的事情。
答案 1 :(得分:5)
是的,你可以使用它。查看有关如何使用项目进行设置的文档。
答案 2 :(得分:0)
我今天确实在努力找出它是如何工作的,因为官方文档并不完善... 所以我找到了解决方案。
简单的结构:
twig / app / app.php
树枝/供应商(如文档中所述由作曲家创建)
twig / views / page.html.twig
app.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>