aboutsummaryrefslogtreecommitdiffhomepage
path: root/services/app/src/Middlewares/TwigMiddleware.php
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2024-01-17 02:11:31 +0900
committernsfisis <nsfisis@gmail.com>2024-01-17 02:11:31 +0900
commitdeacd0dfc195bca41af631114804d29937337cd8 (patch)
treef1f83580e5bc892c0794ac41632bc0cce3498f65 /services/app/src/Middlewares/TwigMiddleware.php
parent38ddeb28ec846ee966d0fe6873585d697a9ef373 (diff)
downloadphperkaigi-2024-albatross-deacd0dfc195bca41af631114804d29937337cd8.tar.gz
phperkaigi-2024-albatross-deacd0dfc195bca41af631114804d29937337cd8.tar.zst
phperkaigi-2024-albatross-deacd0dfc195bca41af631114804d29937337cd8.zip
.
Diffstat (limited to 'services/app/src/Middlewares/TwigMiddleware.php')
-rw-r--r--services/app/src/Middlewares/TwigMiddleware.php33
1 files changed, 33 insertions, 0 deletions
diff --git a/services/app/src/Middlewares/TwigMiddleware.php b/services/app/src/Middlewares/TwigMiddleware.php
new file mode 100644
index 0000000..5b950ce
--- /dev/null
+++ b/services/app/src/Middlewares/TwigMiddleware.php
@@ -0,0 +1,33 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Albatross\Middlewares;
+
+use Nsfisis\Albatross\Twig\CsrfExtension;
+use Psr\Http\Message\ResponseInterface;
+use Psr\Http\Message\ServerRequestInterface;
+use Psr\Http\Server\MiddlewareInterface;
+use Psr\Http\Server\RequestHandlerInterface;
+use Slim\App;
+use Slim\Views\Twig;
+use Slim\Views\TwigMiddleware as SlimTwigMiddleware;
+
+final class TwigMiddleware implements MiddlewareInterface
+{
+ private readonly SlimTwigMiddleware $wrapped;
+
+ public function __construct(App $app, CsrfExtension $csrf_extension)
+ {
+ // TODO:
+ // $twig = Twig::create(__DIR__ . '/../../templates', ['cache' => __DIR__ . '/../../twig-cache']);
+ $twig = Twig::create(__DIR__ . '/../../templates', ['cache' => false]);
+ $twig->addExtension($csrf_extension);
+ $this->wrapped = SlimTwigMiddleware::create($app, $twig);
+ }
+
+ public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
+ {
+ return $this->wrapped->process($request, $handler);
+ }
+}