Converting a PSR-7 ServerRequestInterface to a Zend\Http\PhpEnvironment\Request

The PSR-7 ServerRequestInterface corresponds to the zend-http PhpEnvironment\Request.

To convert from a PSR-7 instance to a zend-http instance, use Zend\Psr7Bridge\Psr7ServerRequest::toZend(). This method takes up to two arguments:

  • the ServerRequestInterface instance to convert.
  • a boolean flag indicating whether or not to do a "shallow" conversion.

Shallow conversions omit:

  • body parameters ("post" in zend-http)
  • uploaded files
  • the body content

It is useful to omit these for purposes of routing, for instance, when you may not need this more process-intensive data. By default, the $shallow flag is false, meaning a full conversion is done.


Full conversion to zend-http request

use Zend\Http\PhpEnvironment\Response;
use Zend\Psr7Bridge\Psr7ServerRequest;

// Assume $controller is a Zend\Mvc\Controller\AbstractController instance.
$result = $controller->dispatch(
    new Response()

Shallow conversion to zend-http request

use Zend\Psr7Bridge\Psr7ServerRequest;

// Assume $router is a Zend\Router\Http\TreeRouteStack instance.
$match = $router->match(Psr7ServerRequest::toZend($request, true));

Found a mistake or want to contribute to the documentation? Edit this page on GitHub!