From ebd7c165189df6868d305ce9fcabb2a98e3c61e5 Mon Sep 17 00:00:00 2001 From: Aleksei Date: Fri, 3 Jun 2022 22:28:04 +1000 Subject: [PATCH] Drop obsolete cookbook for middleware in listeners Signed-off-by: Aleksei --- docs/book/cookbook/middleware-in-listeners.md | 62 ------------------- mkdocs.yml | 1 - 2 files changed, 63 deletions(-) delete mode 100644 docs/book/cookbook/middleware-in-listeners.md diff --git a/docs/book/cookbook/middleware-in-listeners.md b/docs/book/cookbook/middleware-in-listeners.md deleted file mode 100644 index db976232f..000000000 --- a/docs/book/cookbook/middleware-in-listeners.md +++ /dev/null @@ -1,62 +0,0 @@ -# Using middleware within event listeners - -Within the MVC workflow, you can use middleware within event listeners by -converting the request and response objects composed in the event to PSR-7 -equivalents using [laminas-psr7bridge](https://github.com/laminas/laminas-psr7bridge). - -As an example, consider the following `AuthorizationMiddleware`: - -```php -namespace Application\Middleware; - -use Psr\Http\Message\ServerRequestInterface as RequestInterface; -use Psr\Http\Message\ResponseInterface; - -class AuthorizationMiddleware -{ - public function __invoke(RequestInterface $request, ResponseInterface $response, callable $next = null) - { - // handle authorization here... - } -} -``` - -Since the request and response composed in `MvcEvent` instances are specifically -from laminas-http, we will use laminas-psr7bridge to convert them to PSR-7 -equivalents. As an example, consider the following module declaration, which -registers a `dispatch` listener to invoke the above middleware: - -```php -namespace Application; - -use Psr\Http\Message\ResponseInterface; -use Laminas\Psr7Bridge\Psr7ServerRequest; -use Laminas\Psr7Bridge\Psr7Response; - -class Module -{ - public function onBootstrap($e) - { - $app = $e->getApplication(); - $eventManager = $app->getEventManager(); - $services = $app->getServiceManager(); - - $eventManager->attach($e::EVENT_DISPATCH, function ($e) use ($services) { - $request = Psr7ServerRequest::fromLaminas($e->getRequest()); - $response = Psr7Response::fromLaminas($e->getResponse()); - $done = function ($request, $response) { - }; - - $result = ($services->get(Middleware\AuthorizationMiddleware::class))( - $request, - $response, - $done - ); - - if ($result) { - return Psr7Response::toLaminas($result); - } - }, 2); - } -} -``` diff --git a/mkdocs.yml b/mkdocs.yml index 04ed868e4..e391ac637 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -19,7 +19,6 @@ nav: - 'v2.X to v3.0': migration/to-v3-0.md - Cookbook: - 'Automating controller factories': cookbook/automating-controller-factories.md - - 'Using middleware within event listeners': cookbook/middleware-in-listeners.md site_name: laminas-mvc site_description: "Laminas' event-driven MVC layer, including MVC Applications, Controllers, and Plugins." repo_url: 'https://github.com/laminas/laminas-mvc'