Skip to content

Instantly share code, notes, and snippets.

@tflight
Created November 1, 2016 15:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tflight/5b362e8a9faf53099e487a74e5b8bc3f to your computer and use it in GitHub Desktop.
Save tflight/5b362e8a9faf53099e487a74e5b8bc3f to your computer and use it in GitHub Desktop.
Twig View middleware invokable class to add common attributes to Slim's Twig View
<?php
namespace App\Middleware;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Slim\Views\Twig as View;
class ViewMiddleware
{
protected $view;
public function __construct(View $view)
{
$this->view = $view;
}
/**
* Twig View middleware invokable class to add common attributes to Slim's Twig View
*
* @param \Psr\Http\Message\ServerRequestInterface $request PSR7 request
* @param \Psr\Http\Message\ResponseInterface $response PSR7 response
* @param callable $next Next middleware
*
* @return \Psr\Http\Message\ResponseInterface
**/
public function __invoke(Request $request, Response $response, $next)
{
$this->view['request_uri_path'] = $request->getUri()->getPath();
$this->view['csrf'] =
'<input type="hidden" name="csrf_name" value="' . $request->getAttribute('csrf_name') . '">'
. '<input type="hidden" name="csrf_value" value="' . $request->getAttribute('csrf_value') . '">';
$response = $next($request, $response);
return $response;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment