php 我可以在独立项目中使用twig吗

zfciruhq  于 2023-02-18  发布在  PHP
关注(0)|答案(2)|浏览(107)

我可以在一个独立的项目使用小枝模板引擎,例如设计更多的1000 html页面,即网站与静态页面,如果你有任何简单的例子,我会感谢你

5n0oy7gb

5n0oy7gb1#

我发现this Sitepoint tutorial非常简单,我已经简化并总结了步骤:
它假定具备基本的命令行和Composer知识。

  • 对于大多数人来说,安装Twig - Composer可能是最简单的方法。在你的docroot中运行composer require twig/twig。这将创建一个composer.jsoncomposer.lock(如果你还没有的话),以及一个vendor目录,Composer将在其中下载Twig和它使用的一些Symfony依赖项。Composer还将生成一些自动加载文件。
  • 为您的Twig源文件创建一个templates目录(出于安全考虑,我个人喜欢将此目录放在docroot之上)
  • 在该目录中创建示例index.html.twig模板
  • 创建一个bootstrap.php文件(几行PHP代码来加载和初始化Twig(并告诉它在哪里可以找到模板)
  • 创建一个index.php文件来演示加载和解析模板。
  • 装入 Bootstrap
  • 定义一些数据(在数组中)以填充模板中的标记
  • 使用Twig render()方法,指定模板和数据数组

在浏览器中访问第二个PHP文件,应该会得到一个渲染过的Twig模板。

** Bootstrap .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] );

模板/索引.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修改为一个合适的“前端控制器”,这样它就可以处理多个模板。
本教程还提到了缓存生成的模板之类的事情。

kupeojn6

kupeojn62#

我今天确实努力想弄清楚这是如何运作的,因为官方文档并不完美...所以我找到了解决方案。
结构简单:
twig/app/app.php
twig/供应商(如文档中所述,使用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']);

网页.html.twig:

<h1>Hello {{ text }}</h1>

相关问题