From d9f898a0bba0d44d8212ba2459f7c77808f02643 Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Sun, 17 Mar 2019 18:17:33 +0100 Subject: Bugfix: Replaced Diactoros with Symfony PsrHttpFactory to use PhpExtended\HttpMessage implementation Prevents warnings that get converted to errors when run in dev mode --- src/Http/Psr7ServiceProvider.php | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) (limited to 'src/Http/Psr7ServiceProvider.php') diff --git a/src/Http/Psr7ServiceProvider.php b/src/Http/Psr7ServiceProvider.php index 72fdef8e..fe4449ff 100644 --- a/src/Http/Psr7ServiceProvider.php +++ b/src/Http/Psr7ServiceProvider.php @@ -3,27 +3,42 @@ namespace Engelsystem\Http; use Engelsystem\Container\ServiceProvider; +use PhpExtended\HttpMessage\ResponseFactory; +use PhpExtended\HttpMessage\ServerRequestFactory; +use PhpExtended\HttpMessage\StreamFactory; +use PhpExtended\HttpMessage\UploadedFileFactory; +use Psr\Http\Message\ResponseFactoryInterface; use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\ServerRequestFactoryInterface; use Psr\Http\Message\ServerRequestInterface; -use Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory; +use Psr\Http\Message\StreamFactoryInterface; +use Psr\Http\Message\UploadedFileFactoryInterface; +use Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory; +use Symfony\Bridge\PsrHttpMessage\HttpMessageFactoryInterface; class Psr7ServiceProvider extends ServiceProvider { public function register() { - /** @var DiactorosFactory $psr7Factory */ - $psr7Factory = $this->app->make(DiactorosFactory::class); - $this->app->instance('psr7.factory', $psr7Factory); + foreach ( + [ + ServerRequestFactory::class => ['psr7.factory.request', ServerRequestFactoryInterface::class], + ResponseFactory::class => ['psr7.factory.response', ResponseFactoryInterface::class], + UploadedFileFactory::class => ['psr7.factory.upload', UploadedFileFactoryInterface::class], + StreamFactory::class => ['psr7.factory.stream', StreamFactoryInterface::class], + PsrHttpFactory::class => ['psr7.factory', HttpMessageFactoryInterface::class], + ] as $class => $aliases + ) { + foreach ($aliases as $alias) { + $this->app->bind($alias, $class); + } + } - /** @var Request $request */ - $request = $this->app->get('request'); - $this->app->instance('psr7.request', $request); + $this->app->bind('psr7.request', 'request'); $this->app->bind(ServerRequestInterface::class, 'psr7.request'); - /** @var Response $response */ - $response = $this->app->get('response'); - $this->app->instance('psr7.response', $response); + $this->app->bind('psr7.response', 'response'); $this->app->bind(ResponseInterface::class, 'psr7.response'); } } -- cgit v1.2.3-54-g00ecf