Mercurial > hg > isophonics-drupal-site
view vendor/stack/builder/src/Stack/StackedHttpKernel.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line source
<?php namespace Stack; use Symfony\Component\HttpKernel\HttpKernelInterface; use Symfony\Component\HttpKernel\TerminableInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; class StackedHttpKernel implements HttpKernelInterface, TerminableInterface { private $app; private $middlewares = array(); public function __construct(HttpKernelInterface $app, array $middlewares) { $this->app = $app; $this->middlewares = $middlewares; } public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true) { return $this->app->handle($request, $type, $catch); } public function terminate(Request $request, Response $response) { $prevKernel = null; foreach ($this->middlewares as $kernel) { // if prev kernel was terminable we can assume this middleware has already been called if (!$prevKernel instanceof TerminableInterface && $kernel instanceof TerminableInterface) { $kernel->terminate($request, $response); } $prevKernel = $kernel; } } }