无法使树枝模板沙箱工作

时间:2015-08-07 13:07:14

标签: php twig

我想使用Twig templating创建一个沙盒。

这是我的目录结构:

* cache/ - writable
* templates/
  * index.html
* vendor/
  * Twig - twig's content from GitHub
* index.php

我遇到的问题是$ twig-> render没有生成任何输出,我不知道为什么。我正在尝试关注basics tutorial

这是我的index.php文件:

<?php

$twig_lib = __DIR__ . '/vendor/Twig/lib/Twig';
$twig_templates = __DIR__ . '/templates';
$twig_cache = __DIR__ . '/cache'; // remember to `chmod 777 cache` (make this directory writable)

require_once $twig_lib . '/Autoloader.php';
Twig_Autoloader::register();

$loader = new Twig_Loader_Filesystem($twig_templates);
$twig = new Twig_Environment($loader, array(
    'cache' => $twig_cache,
));

$output = $twig->render('index.html', array(
    'a_variable' => 'Hello World',
    'navigation' => array(
        array(
            'href' => 'http://twig.sensiolabs.org/doc/intro.html#basic-api-usage',
            'caption' => 'Basic Twig usage'
        ),
        array(
            'href' => 'http://twig.sensiolabs.org/',
            'caption' => 'Twig main webpage'
        )
    )
));

echo $output;
var_dump($output);

$ output在这里只是一个空字符串。 Apache WWW服务器不会抛出任何错误(在日志中检查)。 Twig本身已正确加载,所有路径也都正确配置。

这是我的index.html(与教程中相同):

<!DOCTYPE html>
<html>
    <head>
        <title>My Webpage</title>
    </head>
    <body>
        <ul id="navigation">
        {% for item in navigation %}
            <li><a href="{{ item.href }}">{{ item.caption }}</a></li>
        {% endfor %}
        </ul>

        <h1>My Webpage</h1>
        {{ a_variable }}
    </body>
</html>

请告诉我我做错了什么。

2 个答案:

答案 0 :(得分:0)

那只是我不看我应该看什么。当index.html为空时,生成缓存目录。我应该清除缓存 - 这就是全部......

答案 1 :(得分:-1)

tutorial page you linked to建议你应该要求作曲家的自动加载器:require_once 'vendor/autoloader.php';

您正在加载一个不存在的文件:require_once '/vendor/Twig/lib/Twig/Autoload.php';使用Twig的默认编写器安装不存在此文件。

编辑:我在vendor/twig/twig/lib/Twig/Autoloader.php找到了一个与您的路径略有不同的自动加载器。

听起来你有错误报告。 You can turn it on with this:

ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);