Skip to content

Dispatching a Router

Joshua Parker edited this page Aug 21, 2020 · 4 revisions

You can dispatch a router by using Laminas SapiEmitter and Laminas Server Request Factory.

/**
 * Step 4: Dispath the router.
 */
 use Laminas\Diactoros\ServerRequestFactory as Request;
 use Laminas\HttpHandlerRunner\Emitter\SapiEmitter as EmitResponse;

 return (new EmitResponse)->emit(
     $router->match(
         Request::fromGlobals(
             $_SERVER,
             $_GET,
             $_POST,
             $_COOKIE,
             $_FILES
         )
     )
 );

 /**
  * Or you can use the HttpPublisher:
  */
  use Laminas\Diactoros\ServerRequestFactory as Request;
  use Laminas\HttpHandlerRunner\Emitter\SapiEmitter as EmitResponse;
  use Qubus\Router\HttpPublisher;

  return (new HttpPublisher)->publish(
      $router->match(
          Request::fromGlobals(
              $_SERVER,
              $_GET,
              $_POST,
              $_COOKIE,
              $_FILES
          )
      ),
      null
  );
Clone this wiki locally