From e58f5d28c2f7cf7204f3c1f95b5d9e52c7429159 Mon Sep 17 00:00:00 2001 From: Thomas Flori <t.flori@sportradar.com> Date: Thu, 7 Mar 2024 14:00:44 +0100 Subject: [PATCH] fix dependencies and incompatibilites to new guzzle version --- .gitignore | 1 + composer.json | 3 +-- src/MessageTrait.php | 26 ++++++++++++++------------ src/Request.php | 15 ++++++++------- src/Response.php | 9 +++++---- src/ServerRequest.php | 26 ++++++++++++++------------ tests/ClientRequestTest.php | 10 +++------- tests/ClientResponseTest.php | 4 ++-- tests/ServerResponseTest.php | 2 +- 9 files changed, 49 insertions(+), 47 deletions(-) diff --git a/.gitignore b/.gitignore index c8153b5..8f7045c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /composer.lock /vendor/ +/.phpunit.result.cache diff --git a/composer.json b/composer.json index eed8fa3..664a226 100644 --- a/composer.json +++ b/composer.json @@ -10,8 +10,7 @@ "coverage": "phpunit --stderr --coverage-text" }, "require": { - "guzzlehttp/psr7": "^2.6.1", - "ralouphie/getallheaders": "^2.0.5" + "guzzlehttp/psr7": "^2.6.1" }, "require-dev": { "phpunit/phpunit": "*", diff --git a/src/MessageTrait.php b/src/MessageTrait.php index 513154b..b9a784d 100644 --- a/src/MessageTrait.php +++ b/src/MessageTrait.php @@ -2,6 +2,8 @@ namespace Tal; +use GuzzleHttp\Psr7\Utils; +use Psr\Http\Message\MessageInterface; use function GuzzleHttp\Psr7\stream_for; use Psr\Http\Message\StreamInterface; @@ -22,12 +24,12 @@ trait MessageTrait /** @var StreamInterface */ protected $stream; - public function getProtocolVersion() + public function getProtocolVersion(): string { return $this->protocol; } - public function withProtocolVersion($version) + public function withProtocolVersion($version): MessageInterface { if ($this->protocol === $version) { return $this; @@ -37,17 +39,17 @@ trait MessageTrait return $new->setProtocolVersion($version); } - public function getHeaders() + public function getHeaders(): array { return $this->headers; } - public function hasHeader($header) + public function hasHeader($header): bool { return isset($this->headerNames[strtolower($header)]); } - public function getHeader($header) + public function getHeader($header): array { $header = strtolower($header); @@ -60,24 +62,24 @@ trait MessageTrait return $this->headers[$header]; } - public function getHeaderLine($header) + public function getHeaderLine($header): string { return implode(', ', $this->getHeader($header)); } - public function withHeader($header, $value) + public function withHeader($header, $value): MessageInterface { $new = clone $this; return $new->setHeader($header, $value); } - public function withAddedHeader($header, $value) + public function withAddedHeader($header, $value): MessageInterface { $new = clone $this; return $new->addHeader($header, $value); } - public function withoutHeader($header) + public function withoutHeader($header): MessageInterface { $normalized = strtolower($header); @@ -89,16 +91,16 @@ trait MessageTrait return $new->deleteHeader($header); } - public function getBody() + public function getBody(): StreamInterface { if (!$this->stream) { - $this->stream = stream_for(''); + $this->stream = Utils::streamFor(''); } return $this->stream; } - public function withBody(StreamInterface $body) + public function withBody(StreamInterface $body): MessageInterface { if ($body === $this->stream) { return $this; diff --git a/src/Request.php b/src/Request.php index a2ba489..f91a61f 100644 --- a/src/Request.php +++ b/src/Request.php @@ -2,6 +2,7 @@ namespace Tal; +use GuzzleHttp\Psr7\Utils; use function GuzzleHttp\Psr7\stream_for; use GuzzleHttp\Psr7\Uri; use InvalidArgumentException; @@ -53,11 +54,11 @@ abstract class Request implements RequestInterface } if ($body !== '' && $body !== null) { - $this->stream = stream_for($body); + $this->stream = Utils::streamFor($body); } } - public function getRequestTarget() + public function getRequestTarget(): string { if ($this->requestTarget !== null) { return $this->requestTarget; @@ -74,29 +75,29 @@ abstract class Request implements RequestInterface return $target; } - public function withRequestTarget($requestTarget) + public function withRequestTarget(string $requestTarget): RequestInterface { $new = clone $this; return $new->setRequestTarget($requestTarget); } - public function getMethod() + public function getMethod(): string { return $this->method; } - public function withMethod($method) + public function withMethod(string $method): RequestInterface { $new = clone $this; return $new->setMethod($method); } - public function getUri() + public function getUri(): UriInterface { return $this->uri; } - public function withUri(UriInterface $uri, $preserveHost = false) + public function withUri(UriInterface $uri, bool $preserveHost = false): RequestInterface { if ($uri === $this->uri) { return $this; diff --git a/src/Response.php b/src/Response.php index 20b8ff4..96e9f44 100644 --- a/src/Response.php +++ b/src/Response.php @@ -2,6 +2,7 @@ namespace Tal; +use GuzzleHttp\Psr7\Utils; use function GuzzleHttp\Psr7\stream_for; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\StreamInterface; @@ -98,7 +99,7 @@ abstract class Response implements ResponseInterface $this->statusCode = (int) $status; if ($body !== '' && $body !== null) { - $this->stream = stream_for($body); + $this->stream = Utils::streamFor($body); } $this->setHeaders($headers); @@ -111,17 +112,17 @@ abstract class Response implements ResponseInterface $this->protocol = $version; } - public function getStatusCode() + public function getStatusCode(): int { return $this->statusCode; } - public function getReasonPhrase() + public function getReasonPhrase(): string { return $this->reasonPhrase; } - public function withStatus($code, $reasonPhrase = '') + public function withStatus(int $code, string $reasonPhrase = ''): ResponseInterface { $new = clone $this; return $new->setStatus($code, $reasonPhrase); diff --git a/src/ServerRequest.php b/src/ServerRequest.php index 5d1ccc3..c9bd025 100644 --- a/src/ServerRequest.php +++ b/src/ServerRequest.php @@ -7,6 +7,8 @@ use GuzzleHttp\Psr7\LazyOpenStream; use GuzzleHttp\Psr7\UploadedFile; use GuzzleHttp\Psr7\Uri; use InvalidArgumentException; +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ServerRequestInterface as PsrServerRequestInterface; use Psr\Http\Message\UriInterface; use Psr\Http\Message\StreamInterface; use Psr\Http\Message\UploadedFileInterface; @@ -234,7 +236,7 @@ class ServerRequest extends Request implements ServerRequestInterface /** * {@inheritdoc} */ - public function getServerParams() + public function getServerParams(): array { return $this->serverParams; } @@ -242,7 +244,7 @@ class ServerRequest extends Request implements ServerRequestInterface /** * {@inheritdoc} */ - public function getUploadedFiles() + public function getUploadedFiles(): array { return $this->uploadedFiles; } @@ -250,7 +252,7 @@ class ServerRequest extends Request implements ServerRequestInterface /** * {@inheritdoc} */ - public function withUploadedFiles(array $uploadedFiles) + public function withUploadedFiles(array $uploadedFiles): PsrServerRequestInterface { $new = clone $this; $new->uploadedFiles = $uploadedFiles; @@ -261,7 +263,7 @@ class ServerRequest extends Request implements ServerRequestInterface /** * {@inheritdoc} */ - public function getCookieParams() + public function getCookieParams(): array { return $this->cookieParams; } @@ -269,7 +271,7 @@ class ServerRequest extends Request implements ServerRequestInterface /** * {@inheritdoc} */ - public function withCookieParams(array $cookies) + public function withCookieParams(array $cookies): PsrServerRequestInterface { $new = clone $this; $new->cookieParams = $cookies; @@ -280,7 +282,7 @@ class ServerRequest extends Request implements ServerRequestInterface /** * {@inheritdoc} */ - public function getQueryParams() + public function getQueryParams(): array { return $this->queryParams; } @@ -288,7 +290,7 @@ class ServerRequest extends Request implements ServerRequestInterface /** * {@inheritdoc} */ - public function withQueryParams(array $query) + public function withQueryParams(array $query): PsrServerRequestInterface { $new = clone $this; $new->queryParams = $query; @@ -307,7 +309,7 @@ class ServerRequest extends Request implements ServerRequestInterface /** * {@inheritdoc} */ - public function withParsedBody($data) + public function withParsedBody($data): PsrServerRequestInterface { $new = clone $this; $new->parsedBody = $data; @@ -318,7 +320,7 @@ class ServerRequest extends Request implements ServerRequestInterface /** * {@inheritdoc} */ - public function getAttributes() + public function getAttributes(): array { return $this->attributes; } @@ -326,7 +328,7 @@ class ServerRequest extends Request implements ServerRequestInterface /** * {@inheritdoc} */ - public function getAttribute($attribute, $default = null) + public function getAttribute(string $attribute, $default = null) { if (false === array_key_exists($attribute, $this->attributes)) { return $default; @@ -338,7 +340,7 @@ class ServerRequest extends Request implements ServerRequestInterface /** * {@inheritdoc} */ - public function withAttribute($attribute, $value) + public function withAttribute(string $attribute, $value): PsrServerRequestInterface { $new = clone $this; $new->attributes[$attribute] = $value; @@ -349,7 +351,7 @@ class ServerRequest extends Request implements ServerRequestInterface /** * {@inheritdoc} */ - public function withoutAttribute($attribute) + public function withoutAttribute(string $attribute): PsrServerRequestInterface { if (false === array_key_exists($attribute, $this->attributes)) { return $this; diff --git a/tests/ClientRequestTest.php b/tests/ClientRequestTest.php index c35d1ba..07c74e1 100644 --- a/tests/ClientRequestTest.php +++ b/tests/ClientRequestTest.php @@ -22,11 +22,9 @@ class RequestTest extends TestCase $this->assertSame($uri, $r->getUri()); } - /** - * @expectedException \InvalidArgumentException - */ public function testValidateRequestUri() { + $this->expectException(\InvalidArgumentException::class); new Request('GET', '///'); } @@ -54,7 +52,7 @@ class RequestTest extends TestCase public function testConstructorDoesNotReadStreamBody() { $streamIsRead = false; - $body = Psr7\FnStream::decorate(Psr7\stream_for(''), [ + $body = Psr7\FnStream::decorate(Psr7\Utils::streamFor(''), [ '__toString' => function () use (&$streamIsRead) { $streamIsRead = true; return ''; @@ -104,11 +102,9 @@ class RequestTest extends TestCase $this->assertEquals('/', $r1->getRequestTarget()); } - /** - * @expectedException \InvalidArgumentException - */ public function testRequestTargetDoesNotAllowSpaces() { + $this->expectException(\InvalidArgumentException::class); $r1 = new Request('GET', '/'); $r1->withRequestTarget('/foo bar'); } diff --git a/tests/ClientResponseTest.php b/tests/ClientResponseTest.php index 7b89db4..936ff72 100644 --- a/tests/ClientResponseTest.php +++ b/tests/ClientResponseTest.php @@ -29,7 +29,7 @@ class ClientResponseTest extends TestCase public function testConstructorDoesNotReadStreamBody() { $streamIsRead = false; - $body = Psr7\FnStream::decorate(Psr7\stream_for(''), [ + $body = Psr7\FnStream::decorate(Psr7\Utils::streamFor(''), [ '__toString' => function () use (&$streamIsRead) { $streamIsRead = true; return ''; @@ -137,7 +137,7 @@ class ClientResponseTest extends TestCase public function testWithBody() { - $b = Psr7\stream_for('0'); + $b = Psr7\Utils::streamFor('0'); $r = (new Response())->withBody($b); $this->assertInstanceOf('Psr\Http\Message\StreamInterface', $r->getBody()); $this->assertSame('0', (string) $r->getBody()); diff --git a/tests/ServerResponseTest.php b/tests/ServerResponseTest.php index 2092873..e2a4e05 100644 --- a/tests/ServerResponseTest.php +++ b/tests/ServerResponseTest.php @@ -16,7 +16,7 @@ class ServerResponseTest extends MockeryTestCase /** * @inheritDoc */ - protected function setUp() + protected function setUp(): void { $this->server = m::mock(Server::class); $this->server->shouldReceive('header')->byDefault(); -- GitLab