From a8dfbe3722045ff04dea387674a8bd816e958187 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Wed, 4 Jan 2023 20:01:41 +0700 Subject: [PATCH 1/2] Apply PHP 8.0 Syntax and constructor promotion Signed-off-by: Abdul Malik Ikhsan --- src/Emitter/EmitterStack.php | 3 +-- src/Emitter/SapiStreamEmitter.php | 10 ++++------ src/Exception/InvalidEmitterException.php | 7 +++---- src/RequestHandlerRunner.php | 17 +++++------------ test/Emitter/EmitterStackTest.php | 9 +++------ test/Emitter/SapiStreamEmitterTest.php | 2 +- test/TestAsset/MockStreamHelper.php | 12 +++--------- 7 files changed, 20 insertions(+), 40 deletions(-) diff --git a/src/Emitter/EmitterStack.php b/src/Emitter/EmitterStack.php index 8064dc4..984ee14 100644 --- a/src/Emitter/EmitterStack.php +++ b/src/Emitter/EmitterStack.php @@ -91,11 +91,10 @@ public function unshift($emitter) /** * Validate that an emitter implements EmitterInterface. * - * @param mixed $emitter * @throws Exception\InvalidEmitterException For non-emitter instances. * @psalm-assert EmitterInterface $emitter */ - private function validateEmitter($emitter): void + private function validateEmitter(mixed $emitter): void { if (! $emitter instanceof EmitterInterface) { throw Exception\InvalidEmitterException::forEmitter($emitter); diff --git a/src/Emitter/SapiStreamEmitter.php b/src/Emitter/SapiStreamEmitter.php index 393ea93..1b4376e 100644 --- a/src/Emitter/SapiStreamEmitter.php +++ b/src/Emitter/SapiStreamEmitter.php @@ -18,12 +18,10 @@ class SapiStreamEmitter implements EmitterInterface { use SapiEmitterTrait; - /** @var int Maximum output buffering size for each iteration. */ - private int $maxBufferLength; - - public function __construct(int $maxBufferLength = 8192) - { - $this->maxBufferLength = $maxBufferLength; + public function __construct( + /** @var int Maximum output buffering size for each iteration. */ + private int $maxBufferLength = 8192 + ) { } /** diff --git a/src/Exception/InvalidEmitterException.php b/src/Exception/InvalidEmitterException.php index f8f36f5..7944c03 100644 --- a/src/Exception/InvalidEmitterException.php +++ b/src/Exception/InvalidEmitterException.php @@ -7,8 +7,7 @@ use InvalidArgumentException; use Laminas\HttpHandlerRunner\Emitter; -use function gettype; -use function is_object; +use function get_debug_type; use function sprintf; class InvalidEmitterException extends InvalidArgumentException implements ExceptionInterface @@ -16,13 +15,13 @@ class InvalidEmitterException extends InvalidArgumentException implements Except /** * @param mixed $emitter Invalid emitter type */ - public static function forEmitter($emitter): self + public static function forEmitter(mixed $emitter): self { return new self(sprintf( '%s can only compose %s implementations; received %s', Emitter\EmitterStack::class, Emitter\EmitterInterface::class, - is_object($emitter) ? $emitter::class : gettype($emitter) + get_debug_type($emitter) )); } } diff --git a/src/RequestHandlerRunner.php b/src/RequestHandlerRunner.php index c628639..0c2e63c 100644 --- a/src/RequestHandlerRunner.php +++ b/src/RequestHandlerRunner.php @@ -23,13 +23,6 @@ */ final class RequestHandlerRunner implements RequestHandlerRunnerInterface { - private EmitterInterface $emitter; - - /** - * A request handler to run as the application. - */ - private RequestHandlerInterface $handler; - /** * A factory capable of generating an error response in the scenario that * the $serverRequestFactory raises an exception during generation of the @@ -55,14 +48,14 @@ final class RequestHandlerRunner implements RequestHandlerRunnerInterface * @param callable(Throwable):ResponseInterface $serverRequestErrorResponseGenerator */ public function __construct( - RequestHandlerInterface $handler, - EmitterInterface $emitter, + /** + * A request handler to run as the application. + */ + private RequestHandlerInterface $handler, + private EmitterInterface $emitter, callable $serverRequestFactory, callable $serverRequestErrorResponseGenerator ) { - $this->handler = $handler; - $this->emitter = $emitter; - $this->serverRequestFactory = $serverRequestFactory; $this->serverRequestErrorResponseGenerator = $serverRequestErrorResponseGenerator; } diff --git a/test/Emitter/EmitterStackTest.php b/test/Emitter/EmitterStackTest.php index 525ddc0..a044e4e 100644 --- a/test/Emitter/EmitterStackTest.php +++ b/test/Emitter/EmitterStackTest.php @@ -49,9 +49,8 @@ public function nonEmitterValues(): iterable /** * @dataProvider nonEmitterValues - * @param mixed $value */ - public function testCannotPushNonEmitterToStack($value): void + public function testCannotPushNonEmitterToStack(mixed $value): void { $this->expectException(Exception\InvalidEmitterException::class); /** @psalm-suppress MixedArgument */ @@ -60,9 +59,8 @@ public function testCannotPushNonEmitterToStack($value): void /** * @dataProvider nonEmitterValues - * @param mixed $value */ - public function testCannotUnshiftNonEmitterToStack($value): void + public function testCannotUnshiftNonEmitterToStack(mixed $value): void { $this->expectException(Exception\InvalidEmitterException::class); /** @psalm-suppress MixedArgument */ @@ -71,9 +69,8 @@ public function testCannotUnshiftNonEmitterToStack($value): void /** * @dataProvider nonEmitterValues - * @param mixed $value */ - public function testCannotSetNonEmitterToSpecificIndex($value): void + public function testCannotSetNonEmitterToSpecificIndex(mixed $value): void { $this->expectException(Exception\InvalidEmitterException::class); /** @psalm-suppress MixedArgument */ diff --git a/test/Emitter/SapiStreamEmitterTest.php b/test/Emitter/SapiStreamEmitterTest.php index 0726488..c45778f 100644 --- a/test/Emitter/SapiStreamEmitterTest.php +++ b/test/Emitter/SapiStreamEmitterTest.php @@ -555,7 +555,7 @@ public function emitJsonResponseProvider(): array * @dataProvider emitJsonResponseProvider * @param mixed $contents Contents stored in stream */ - public function testEmitJsonResponse($contents): void + public function testEmitJsonResponse(mixed $contents): void { $response = (new JsonResponse($contents)) ->withStatus(200); diff --git a/test/TestAsset/MockStreamHelper.php b/test/TestAsset/MockStreamHelper.php index 60d7fd6..67b1fe8 100644 --- a/test/TestAsset/MockStreamHelper.php +++ b/test/TestAsset/MockStreamHelper.php @@ -15,10 +15,6 @@ class MockStreamHelper /** @var string|callable(int,?int=null):string */ private $contents; - private int $position; - - private int $size; - private int $startPosition; /** @var null|callable */ @@ -30,14 +26,12 @@ class MockStreamHelper */ public function __construct( $contents, - int $size, - int $startPosition, + private int $size, + private int $position, ?callable $trackPeakBufferLength = null ) { $this->contents = $contents; - $this->size = $size; - $this->position = $startPosition; - $this->startPosition = $startPosition; + $this->startPosition = $position; $this->trackPeakBufferLength = $trackPeakBufferLength; } From 76ccec02a3c7f062c29b8b3a0fcc99b20844c08a Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Wed, 4 Jan 2023 20:03:25 +0700 Subject: [PATCH 2/2] Fix docblock @var -> param Signed-off-by: Abdul Malik Ikhsan --- src/Emitter/SapiStreamEmitter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Emitter/SapiStreamEmitter.php b/src/Emitter/SapiStreamEmitter.php index 1b4376e..f58708f 100644 --- a/src/Emitter/SapiStreamEmitter.php +++ b/src/Emitter/SapiStreamEmitter.php @@ -19,7 +19,7 @@ class SapiStreamEmitter implements EmitterInterface use SapiEmitterTrait; public function __construct( - /** @var int Maximum output buffering size for each iteration. */ + /** @param int Maximum output buffering size for each iteration. */ private int $maxBufferLength = 8192 ) { }