how to add twig-view in slimframework v4

前端 未结 3 1300
梦谈多话
梦谈多话 2021-01-02 21:15

I\'m trying to add twig-view in slim v4

In slim v3, we add twig-view in container

$container[\'view\'] = fun         


        
3条回答
  •  南方客
    南方客 (楼主)
    2021-01-02 21:44

    SlimTwigView is at 3.0.0 beta (at least as of October 12, 2019), and some things have changed. The few online tutorials I've seen, as well as the official documentation no longer work.

    TwigMiddleware no longer takes an instance of the $container as an argument, so you must first put Twig on the Container manually such as:

    $container->set('view', function() {
        // Of course put correct path to your views here
        return new Twig('../views', ['cache' => false]);
    });
    

    You then you can add TwigMiddleware to your Slim App using the class' new createFromContainer method, like so:

    $app->add(TwigMiddleware::createFromContainer($app));
    // which is equivalent to:
    // $app->add(TwigMiddleware::createFromContainer($app, 'view'));
    

    At that point, you can render a Twig view like so:

    $app->get('/', function (Request $request, Response $response, $args) {
        return $this->get('view')->render($response, 'home.twig');
    });
    

    When using the Slim specific middleware, you now have access to the additional Twig extensions:

    url_for
    full_url_for
    is_current_url
    current_url
    get_uri
    

提交回复
热议问题