如何使用Slim模板?

时间:2016-05-23 12:05:03

标签: php templates twig slim

http://www.slimframework.com/docs/tutorial/first-app.html显示模板使用“普通旧PHP”(Composer包为php-view,类为PhpRenderer),如下所示:

<?php
// Create app
$app = new \Slim\App();

// Get container
$container = $app->getContainer();

$container['view'] = new \Slim\Views\PhpRenderer("../templates/");

$app->get('/tickets', function (Request $request, Response $response) {
    $this->logger->addInfo("Ticket list");
    $mapper = new TicketMapper($this->db);
    $tickets = $mapper->getTickets();

    $response = $this->view->render($response, "tickets.phtml", ["tickets" => $tickets]);
    return $response;
});

// Run app
$app->run();

上面说明使用Twig模板的页面基本相同,但http://www.slimframework.com/docs/features/templates.html显示了一种非常不同的方法。哪个是使用模板的正确方法,特别是我应该如何使用Twig模板?

<?php
// Create app
$app = new \Slim\App();

// Get container
$container = $app->getContainer();

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

    return $view;
};

// Render Twig template in route
$app->get('/hello/{name}', function ($request, $response, $args) {
    return $this->view->render($response, 'profile.html', [
        'name' => $args['name']
    ]);
})->setName('profile');

// Run app
$app->run();

0 个答案:

没有答案