From 47a7b227560fac03a8c15d604e8733a1d68cc401 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20L=C3=BCck?= Date: Sun, 7 Jul 2024 15:39:41 +0200 Subject: [PATCH] Improve PHP 8.4+ support by avoiding implicitly nullable types --- src/Clue/Redis/Protocol/Model/MultiBulkReply.php | 5 ++++- tests/Model/MultiBulkReplyTest.php | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Clue/Redis/Protocol/Model/MultiBulkReply.php b/src/Clue/Redis/Protocol/Model/MultiBulkReply.php index 7198dc6..0ec4ed6 100644 --- a/src/Clue/Redis/Protocol/Model/MultiBulkReply.php +++ b/src/Clue/Redis/Protocol/Model/MultiBulkReply.php @@ -19,8 +19,11 @@ class MultiBulkReply implements ModelInterface * @param array|null $data * @throws InvalidArgumentException */ - public function __construct(array $data = null) + public function __construct($data = null) { + if ($data !== null && !is_array($data)) { // manual type check to support legacy PHP < 7.1 + throw new InvalidArgumentException('Argument #1 ($data) expected array|null'); + } $this->data = $data; } diff --git a/tests/Model/MultiBulkReplyTest.php b/tests/Model/MultiBulkReplyTest.php index ff4a0c3..2c36bc8 100644 --- a/tests/Model/MultiBulkReplyTest.php +++ b/tests/Model/MultiBulkReplyTest.php @@ -11,6 +11,12 @@ protected function createModel($value) return new MultiBulkReply($value); } + public function testConstructWithInvalidDataThrows() + { + $this->setExpectedException('InvalidArgumentException', 'Argument #1 ($data) expected array|null'); + new MultiBulkReply('data'); + } + public function testEmptyArray() { $model = $this->createModel(array());