php - 在 Slim 应用程序中使用 Twig

标签 php twig slim

我正在为我正在开发的一个简单网站使用 Slim 框架,并且还想使用 Twig 模板引擎。

我已经安装了 Slim、Slim Extras 和 Twig,我的 index.php 文件包含以下内容:

<?php

/* Require and initialize Slim and Twig */
require 'Slim/Slim.php';
\Slim\Slim::registerAutoloader();
require 'Twig/lib/Twig/Autoloader.php';
Twig_Autoloader::register();

$app = new \Slim\Slim(array(
    'view' => new \Slim\Extras\Views\Twig()
));

/* Application routes */
$app->get('/', function () {
    $pageTitle = 'hello world';
    $body = 'sup world';

    $app->view()->setData(array('title' => $title, 'body' => $body));
    $app->render('index.html');
});

/* Run the application */
$app->run();

但是,这会导致错误: fatal error :在第 18 行的 C:\xampp\htdocs\index.php 中的非对象上调用成员函数 view()

我承认我不知道如何正确使用 Twig 和 Slim。我关注了关于目录结构和如何加载 Twig 的 StackOverflow 帖子,但我不知道如何向 View 添加一些自定义数据,也不知道 Twig 的 View 文件应该存储在哪里。

我用谷歌搜索了很多信息,但很多信息都是针对旧版本的 Slim,而且缺少 Slim 文档本身。

谢谢!

最佳答案

这是一个简单的 PHP 错误。您正在尝试访问未导入其作用域的闭包中的变量,请像这样修复它:

$app->get('/', function () use ($app) {
    // $app will work here
});

关于php - 在 Slim 应用程序中使用 Twig,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14589408/

相关文章:

php - 按距离删除数组中的名称

php - 在两个不同目录中进行 Elasticsearch

php - 将整个 Slim 应用程序打包到 Phar 文件中时出错

php - Slim Framework - PDO 对象已创建但似乎不在范围内

sqlite - 带有 sqlite 的超薄日志写入器

php - 在 jQuery 中使用 AJAX 访问信息并将数据从 PHP 传递到 JSON

php - (Azure) MySQL : MySQL Server Has Gone Away

css - Symfony2 Assetic 在 css/less 文件中错误的 cssrewrite 资源路径

php - 如何在 Shopware 6 中进行模板多重继承?

PHP - Twig 更改数组键值