From 4e38c1fe2598e322771688a476b01c76cf3e1ade Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Mon, 11 Feb 2019 13:18:32 +0200 Subject: [PATCH] Improve onRequestHandlerInit event --- .../Processors/Events/RequestHandlerEvent.php | 23 ++++++++++++++++++- .../Common/Processors/RequestProcessor.php | 2 +- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/system/src/Grav/Common/Processors/Events/RequestHandlerEvent.php b/system/src/Grav/Common/Processors/Events/RequestHandlerEvent.php index cecdc07ad..cc188e647 100644 --- a/system/src/Grav/Common/Processors/Events/RequestHandlerEvent.php +++ b/system/src/Grav/Common/Processors/Events/RequestHandlerEvent.php @@ -10,12 +10,33 @@ namespace Grav\Common\Processors\Events; use Grav\Framework\RequestHandler\RequestHandler; +use Psr\Http\Message\RequestInterface; use Psr\Http\Server\MiddlewareInterface; use RocketTheme\Toolbox\Event\Event; class RequestHandlerEvent extends Event { - public function addMiddleware($name, MiddlewareInterface $middleware) + /** + * @return RequestInterface + */ + public function getRequest(): RequestInterface + { + return $this->offsetGet('request'); + } + + /** + * @return RequestHandler + */ + public function getHandler(): RequestHandler + { + return $this->offsetGet('handler'); + } + + /** + * @param string $name + * @param MiddlewareInterface $middleware + */ + public function addMiddleware(string $name, MiddlewareInterface $middleware): void { /** @var RequestHandler $handler */ $handler = $this['handler']; diff --git a/system/src/Grav/Common/Processors/RequestProcessor.php b/system/src/Grav/Common/Processors/RequestProcessor.php index 8fb66c604..d92dd7ee4 100644 --- a/system/src/Grav/Common/Processors/RequestProcessor.php +++ b/system/src/Grav/Common/Processors/RequestProcessor.php @@ -28,7 +28,7 @@ class RequestProcessor extends ProcessorBase ->withAttribute('route', Uri::getCurrentRoute()) ->withAttribute('referrer', $this->container['uri']->referrer()); - $event = new RequestHandlerEvent(['handler' => $handler]); + $event = new RequestHandlerEvent(['request' => $request, 'handler' => $handler]); $this->container->fireEvent('onRequestHandlerInit', $event); $this->stopTimer();