summaryrefslogtreecommitdiff
path: root/src/Http
diff options
context:
space:
mode:
authorIgor Scheller <igor.scheller@igorshp.de>2019-03-17 18:17:33 +0100
committermsquare <msquare@notrademark.de>2019-04-16 20:20:56 +0200
commitd9f898a0bba0d44d8212ba2459f7c77808f02643 (patch)
treeb11225be5b9104e7a7b99dec1faf5a47bf94f464 /src/Http
parenta1f5154c219255c71e7c5de5003b30c9c2024439 (diff)
Bugfix: Replaced Diactoros with Symfony PsrHttpFactory to use PhpExtended\HttpMessage implementation
Prevents warnings that get converted to errors when run in dev mode
Diffstat (limited to 'src/Http')
-rw-r--r--src/Http/MessageTrait.php6
-rw-r--r--src/Http/Psr7ServiceProvider.php35
-rw-r--r--src/Http/Request.php14
3 files changed, 34 insertions, 21 deletions
diff --git a/src/Http/MessageTrait.php b/src/Http/MessageTrait.php
index e46d291e..63ff3682 100644
--- a/src/Http/MessageTrait.php
+++ b/src/Http/MessageTrait.php
@@ -3,8 +3,8 @@
namespace Engelsystem\Http;
+use PhpExtended\HttpMessage\StringStream;
use Psr\Http\Message\StreamInterface;
-use Zend\Diactoros\Stream;
/**
* @implements \Psr\Http\Message\MessageInterface
@@ -213,9 +213,7 @@ trait MessageTrait
*/
public function getBody()
{
- $stream = new Stream('php://memory', 'wb+');
- $stream->write($this->getContent());
- $stream->rewind();
+ $stream = new StringStream($this->getContent());
return $stream;
}
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');
}
}
diff --git a/src/Http/Request.php b/src/Http/Request.php
index 06900a18..ee496035 100644
--- a/src/Http/Request.php
+++ b/src/Http/Request.php
@@ -2,13 +2,13 @@
namespace Engelsystem\Http;
+use PhpExtended\HttpMessage\UploadedFile;
+use PhpExtended\HttpMessage\Uri;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\UploadedFileInterface;
use Psr\Http\Message\UriInterface;
use Symfony\Component\HttpFoundation\File\UploadedFile as SymfonyFile;
use Symfony\Component\HttpFoundation\Request as SymfonyRequest;
-use Zend\Diactoros\UploadedFile;
-use Zend\Diactoros\Uri;
class Request extends SymfonyRequest implements ServerRequestInterface
{
@@ -207,7 +207,7 @@ class Request extends SymfonyRequest implements ServerRequestInterface
{
$uri = parent::getUri();
- return new Uri($uri);
+ return Uri::parseFromString($uri);
}
/**
@@ -332,11 +332,11 @@ class Request extends SymfonyRequest implements ServerRequestInterface
/** @var SymfonyFile $file */
$files[] = new UploadedFile(
- $file->getPath(),
- $file->getSize(),
- $file->getError(),
$file->getClientOriginalName(),
- $file->getClientMimeType()
+ $file->getRealPath(),
+ $file->getMimeType(),
+ $file->getSize(),
+ $file->getError()
);
}