使用Slim Framework 3

时间:2015-12-25 09:43:35

标签: php slim

使用Slim Framework 2,您可以使用以下代码设置模板目录:

// Views
$view = $app->view();
$view->setTemplateDirectory('../app/views');

如何使用Slim Framework 3执行此操作?

目前我收到此错误:

Fatal error: Call to a member function setTemplateDirectory() on null

有人知道如何在Slim Framework 3中做到这一点吗?

1 个答案:

答案 0 :(得分:3)

您可以使用\Slim\Container实例执行此操作:

// Create container
$container = new \Slim\Container;

// Register component on container
$container['view'] = function ($c) {
    $view = new \Slim\Views\Twig('your/path/to/templates');
    $view->addExtension(new \Slim\Views\TwigExtension(
        $c['router'],
        $c['request']->getUri()
    ));

    return $view;
};

然后你可以使用它:

$app = new \Slim\App($container);

// The route
$app->get('/foo', function (ServerRequestInterface $request, ResponseInterface $response) {
  return $this->view->render($response, 'index.html', [
        'name' => 'name'
    ]);
});
$app->run();

检查official documentationMika Tuupola's suggestion)。