diff options
Diffstat (limited to 'src/Middleware')
-rw-r--r-- | src/Middleware/AddHeaders.php | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/Middleware/AddHeaders.php b/src/Middleware/AddHeaders.php new file mode 100644 index 00000000..75383a90 --- /dev/null +++ b/src/Middleware/AddHeaders.php @@ -0,0 +1,46 @@ +<?php + +namespace Engelsystem\Middleware; + +use Engelsystem\Config\Config; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\ServerRequestInterface; +use Psr\Http\Server\MiddlewareInterface; +use Psr\Http\Server\RequestHandlerInterface; + +class AddHeaders implements MiddlewareInterface +{ + /** @var Config */ + protected $config; + + /** + * @param Config $config + */ + public function __construct(Config $config) + { + $this->config = $config; + } + + /** + * Process an incoming server request and setting the locale if required + * + * @param ServerRequestInterface $request + * @param RequestHandlerInterface $handler + * @return ResponseInterface + */ + public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface + { + $response = $handler->handle($request); + if (!$this->config->get('add_headers', true)) { + return $response; + } + + $headers = $this->config->get('headers', []); + + foreach ($headers as $name => $value) { + $response = $response->withAddedHeader($name, $value); + } + + return $response; + } +} |