add twig to container

This commit is contained in:
Yisroel Baum 2026-03-22 10:28:37 +02:00
parent c0f9551c0a
commit e86e3a1238
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9
2 changed files with 13 additions and 4 deletions

View file

@ -3,16 +3,21 @@
use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Http\Message\ServerRequestInterface as Request;
use DI\Bridge\Slim\Bridge; use DI\Bridge\Slim\Bridge;
use Slim\Views\Twig;
use Slim\Views\TwigMiddleware;
$container = require __DIR__.'/container.php'; $container = require __DIR__.'/container.php';
$app = Bridge::create($container); $app = Bridge::create($container);
$app->add(TwigMiddleware::create($app, $container->get(Twig::class)));
// change first param to false for production // change first param to false for production
$app->addErrorMiddleware(true, true, true); $app->addErrorMiddleware(true, true, true);
$app->get('/', function (Response $response) { $app->get('/admin', function (Response $response, Twig $twig) {
$response->getBody()->write("Hello world!"); return $twig->render($response, 'admin.html.twig', [
return $response; 'name' => 'John',
]);
}); });
return $app; return $app;

View file

@ -1,9 +1,13 @@
<?php <?php
use DI\Container; use DI\Container;
use Slim\Views\Twig;
$container = new Container([ $container = new Container([
// Note: For production scenarios, cache should be set to some 'path/to/cache'
// to store compiled templates (thus avoiding recompilation on every request).
// For more information, see https://twig.symfony.com/doc/3.x/api.html#environment-options
Twig::class => Twig::create(__DIR__.'/../views/templates', ['cache' => false]),
]); ]);
return $container; return $container;