Skip to content

Instantly share code, notes, and snippets.

@szabacsik
Created July 6, 2021 14:17
Show Gist options
  • Save szabacsik/157e8baff3ea18776bb17e64c3dcc4ab to your computer and use it in GitHub Desktop.
Save szabacsik/157e8baff3ea18776bb17e64c3dcc4ab to your computer and use it in GitHub Desktop.
PHP - PSR-7 HTTP message interfaces & PSR-17 HTTP Factories
<?php
/*
* composer require guzzlehttp/psr7
* composer require laminas/laminas-diactoros
* composer require slim/psr7
* composer require nyholm/psr7
* composer require nyholm/psr7-server
*
* https://www.php-fig.org/psr/psr-7/
* https://www.php-fig.org/psr/psr-17/
*
*/
require_once __DIR__ . '/vendor/autoload.php';
$guzzleRequest = \GuzzleHttp\Psr7\ServerRequest::fromGlobals();
$laminasRequest = \Laminas\Diactoros\ServerRequestFactory::fromGlobals();
$slimRequest = Slim\Psr7\Factory\ServerRequestFactory::createFromGlobals();
$psr17Factory = new \Nyholm\Psr7\Factory\Psr17Factory();
$creator = new \Nyholm\Psr7Server\ServerRequestCreator($psr17Factory, $psr17Factory, $psr17Factory, $psr17Factory);
$nyholmRequest = $creator->fromGlobals();
echo nl2br(Laminas\Diactoros\Request\Serializer::toString($nyholmRequest));
echo nl2br(\GuzzleHttp\Psr7\Message::toString($slimRequest));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment