From 4de922c1668c44f4d90d8a75b7d3d3b6e684c8df Mon Sep 17 00:00:00 2001 From: Daniel Esteve Date: Tue, 4 Jan 2022 13:28:04 +0100 Subject: [PATCH 1/4] php 8.1 compat --- .github/workflows/ci.yml | 2 +- .gitignore | 3 ++- phpunit.xml | 30 ++++++++++++++++------------ src/Broker/ActiveMq/Options.php | 4 ++++ src/Protocol/Version.php | 2 +- src/States/Meta/SubscriptionList.php | 6 ++++++ src/Transport/Frame.php | 4 ++++ 7 files changed, 35 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cbf03b4..8332c72 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: strategy: fail-fast: false matrix: - php: ['7.3', '7.4', '8.0'] + php: ['7.3', '7.4', '8.0', '8.1'] name: PHP ${{ matrix.php }} tests steps: - uses: actions/checkout@v2 diff --git a/.gitignore b/.gitignore index f9a5309..0f03eed 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ vendor /.idea /.project /travisci/tmp -stomp-php.iml \ No newline at end of file +stomp-php.iml +.phpunit.result.cache \ No newline at end of file diff --git a/phpunit.xml b/phpunit.xml index c3c7ca7..a53fcc9 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,16 +1,17 @@ - + + backupGlobals = "false" + backupStaticAttributes = "false" + colors = "true" + convertDeprecationsToExceptions = "true" + convertErrorsToExceptions = "true" + convertNoticesToExceptions = "true" + convertWarningsToExceptions = "true" + processIsolation = "false" + stopOnFailure = "false" + bootstrap = "tests/bootstrap.php" > src/ @@ -18,6 +19,9 @@ vendor/ + + + @@ -30,7 +34,7 @@ tests/Unit/ - - - + + + diff --git a/src/Broker/ActiveMq/Options.php b/src/Broker/ActiveMq/Options.php index 2ec3168..c27ae76 100644 --- a/src/Broker/ActiveMq/Options.php +++ b/src/Broker/ActiveMq/Options.php @@ -43,16 +43,19 @@ public function __construct(array $options = []) } } + #[\ReturnTypeWillChange] public function offsetExists($offset) { return isset($this->options[$offset]); } + #[\ReturnTypeWillChange] public function offsetGet($offset) { return $this->options[$offset]; } + #[\ReturnTypeWillChange] public function offsetSet($offset, $value) { if (in_array($offset, $this->extensions, true)) { @@ -60,6 +63,7 @@ public function offsetSet($offset, $value) } } + #[\ReturnTypeWillChange] public function offsetUnset($offset) { unset($this->options[$offset]); diff --git a/src/Protocol/Version.php b/src/Protocol/Version.php index a463814..2d6c6a3 100644 --- a/src/Protocol/Version.php +++ b/src/Protocol/Version.php @@ -69,7 +69,7 @@ public function __construct(Frame $frame) */ public function getProtocol($clientId, $default = 'ActiveMQ/5.11.1') { - $server = trim($this->frame['server']) ?: $default; + $server = $this->frame['server'] ? trim($this->frame['server']) : $default; $version = $this->getVersion(); if (stristr($server, 'rabbitmq') !== false) { return new RabbitMq($clientId, $version, $server); diff --git a/src/States/Meta/SubscriptionList.php b/src/States/Meta/SubscriptionList.php index c693591..8f5ea36 100644 --- a/src/States/Meta/SubscriptionList.php +++ b/src/States/Meta/SubscriptionList.php @@ -59,6 +59,7 @@ public function getSubscription(Frame $frame) * * @return \Iterator|Subscription[] */ + #[\ReturnTypeWillChange] public function getIterator() { return new ArrayIterator($this->subscriptions); @@ -69,6 +70,7 @@ public function getIterator() * * @return bool */ + #[\ReturnTypeWillChange] public function offsetExists($offset) { return isset($this->subscriptions[$offset]); @@ -79,6 +81,7 @@ public function offsetExists($offset) * * @return Subscription */ + #[\ReturnTypeWillChange] public function offsetGet($offset) { return $this->subscriptions[$offset]; @@ -87,6 +90,7 @@ public function offsetGet($offset) /** * @inheritdoc */ + #[\ReturnTypeWillChange] public function offsetSet($offset, $value) { $this->subscriptions[$offset] = $value; @@ -95,6 +99,7 @@ public function offsetSet($offset, $value) /** * @inheritdoc */ + #[\ReturnTypeWillChange] public function offsetUnset($offset) { unset($this->subscriptions[$offset]); @@ -103,6 +108,7 @@ public function offsetUnset($offset) /** * @inheritdoc */ + #[\ReturnTypeWillChange] public function count() { return count($this->subscriptions); diff --git a/src/Transport/Frame.php b/src/Transport/Frame.php index 6568561..a18c7c0 100644 --- a/src/Transport/Frame.php +++ b/src/Transport/Frame.php @@ -212,6 +212,7 @@ protected function encodeHeaderValue($value) /** * @inheritdoc */ + #[\ReturnTypeWillChange] public function offsetExists($offset) { return isset($this->headers[$offset]); @@ -220,6 +221,7 @@ public function offsetExists($offset) /** * @inheritdoc */ + #[\ReturnTypeWillChange] public function offsetGet($offset) { if (isset($this->headers[$offset])) { @@ -231,6 +233,7 @@ public function offsetGet($offset) /** * @inheritdoc */ + #[\ReturnTypeWillChange] public function offsetSet($offset, $value) { if ($value !== null) { @@ -242,6 +245,7 @@ public function offsetSet($offset, $value) /** * @inheritdoc */ + #[\ReturnTypeWillChange] public function offsetUnset($offset) { unset($this->headers[$offset]); From fa3f33f2f6a6a3ed97add4e1cc24fd2c9b5775e1 Mon Sep 17 00:00:00 2001 From: Daniel Esteve Date: Wed, 5 Jan 2022 12:07:30 +0100 Subject: [PATCH 2/4] format phpunit.xml --- phpunit.xml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/phpunit.xml b/phpunit.xml index a53fcc9..9258b1d 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -2,16 +2,17 @@ + backupGlobals="false" + backupStaticAttributes="false" + colors="true" + convertDeprecationsToExceptions="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + bootstrap="tests/bootstrap.php" +> src/ From 2473a5b14f166cd33ec66876deb2824998c4dc8f Mon Sep 17 00:00:00 2001 From: Daniel Esteve Date: Wed, 12 Jan 2022 10:50:09 +0100 Subject: [PATCH 3/4] update phpunit deprecated methods --- tests/Functional/Generic/ConnectionTest.php | 8 ++++---- .../Broker/ActiveMq/Mode/ActiveMqModeTest.php | 2 +- .../Broker/Apollo/Mode/QueueBrowserTest.php | 2 +- tests/Unit/ClientTest.php | 20 +++++++++---------- tests/Unit/Network/ConnectionTest.php | 6 +++--- .../ConnectionObserverCollectionTest.php | 4 ++-- .../Network/Observer/HeartbeatEmitterTest.php | 2 +- .../Observer/ServerAliveObserverTest.php | 2 +- tests/Unit/SimpleStompTest.php | 4 ++-- tests/Unit/StatefulStompTest.php | 2 +- tests/Unit/States/ConsumerStateTest.php | 2 +- tests/Unit/Transport/ParserTest.php | 6 +++--- 12 files changed, 30 insertions(+), 30 deletions(-) diff --git a/tests/Functional/Generic/ConnectionTest.php b/tests/Functional/Generic/ConnectionTest.php index 7c8be57..88a23bd 100644 --- a/tests/Functional/Generic/ConnectionTest.php +++ b/tests/Functional/Generic/ConnectionTest.php @@ -27,7 +27,7 @@ public function testReadFrameThrowsExceptionIfStreamIsBroken() { /** @var Connection|MockObject $connection */ $connection = $this->getMockBuilder(Connection::class) - ->setMethods(['hasDataToRead', 'connectSocket']) + ->onlyMethods(['hasDataToRead', 'connectSocket']) ->setConstructorArgs(['tcp://host']) ->getMock(); @@ -55,7 +55,7 @@ public function testReadFrameThrowsExceptionIfErrorFrameIsReceived() { /** @var \Stomp\Network\Connection|MockObject $connection */ $connection = $this->getMockBuilder(Connection::class) - ->setMethods(['hasDataToRead', 'connectSocket']) + ->onlyMethods(['hasDataToRead', 'connectSocket']) ->setConstructorArgs(['tcp://host']) ->getMock(); @@ -83,7 +83,7 @@ public function testWriteFrameThrowsExceptionIfConnectionIsBroken() { /** @var \Stomp\Network\Connection|MockObject $connection */ $connection = $this->getMockBuilder(Connection::class) - ->setMethods(['connectSocket']) + ->onlyMethods(['connectSocket']) ->setConstructorArgs(['tcp://host']) ->getMock(); @@ -107,7 +107,7 @@ public function testHasDataToReadThrowsExceptionIfConnectionIsBroken() { /** @var \Stomp\Network\Connection|MockObject $connection */ $connection = $this->getMockBuilder(Connection::class) - ->setMethods(['isConnected', 'connectSocket']) + ->onlyMethods(['isConnected', 'connectSocket']) ->setConstructorArgs(['tcp://host']) ->getMock(); diff --git a/tests/Unit/Broker/ActiveMq/Mode/ActiveMqModeTest.php b/tests/Unit/Broker/ActiveMq/Mode/ActiveMqModeTest.php index ed6f88c..ba119d9 100644 --- a/tests/Unit/Broker/ActiveMq/Mode/ActiveMqModeTest.php +++ b/tests/Unit/Broker/ActiveMq/Mode/ActiveMqModeTest.php @@ -27,7 +27,7 @@ public function testGetProtocolWillThrowExceptionIfClientIsNotConnectedToActiveM { $client = $this->getMockBuilder(Client::class) ->disableOriginalConstructor() - ->setMethods(['getProtocol']) + ->onlyMethods(['getProtocol']) ->getMock(); $client->expects($this->any())->method('getProtocol')->willReturn(new RabbitMq('clientid')); diff --git a/tests/Unit/Broker/Apollo/Mode/QueueBrowserTest.php b/tests/Unit/Broker/Apollo/Mode/QueueBrowserTest.php index b7b9143..c6a356f 100644 --- a/tests/Unit/Broker/Apollo/Mode/QueueBrowserTest.php +++ b/tests/Unit/Broker/Apollo/Mode/QueueBrowserTest.php @@ -26,7 +26,7 @@ public function testBrowserWontWorkWithNonApolloBroker() { $client = $this->getMockBuilder(Client::class) ->disableOriginalConstructor() - ->setMethods(['getProtocol']) + ->onlyMethods(['getProtocol']) ->getMock(); $client->method('getProtocol')->willReturn(new RabbitMq('client-id')); diff --git a/tests/Unit/ClientTest.php b/tests/Unit/ClientTest.php index 8081085..86d25a1 100644 --- a/tests/Unit/ClientTest.php +++ b/tests/Unit/ClientTest.php @@ -119,7 +119,7 @@ public function testSyncModeIsEnabledByDefault() public function testConnectWillUseConfiguredVersions() { $connection = $this->getMockBuilder(Connection::class) - ->setMethods(['readFrame', 'writeFrame', 'getParser', 'isConnected', 'disconnect']) + ->onlyMethods(['readFrame', 'writeFrame', 'getParser', 'isConnected', 'disconnect']) ->disableOriginalConstructor() ->getMock(); $connection @@ -213,7 +213,7 @@ public function testWaitForReceiptWillThrowExceptionIfConnectionReadTimeoutOccur protected function getStompWithInjectedMockedConnectionReadResult($readFrameResult) { $connection = $this->getMockBuilder(Connection::class) - ->setMethods(['readFrame', 'writeFrame', 'getParser', 'isConnected', 'disconnect']) + ->onlyMethods(['readFrame', 'writeFrame', 'getParser', 'isConnected', 'disconnect']) ->disableOriginalConstructor() ->getMock(); $connection @@ -329,7 +329,7 @@ public function testSendWillConvertStringToFrameBodyAndSetSyncState() protected function getStompMockWithSendFrameCatcher(&$lastSendFrame, &$lastSyncState) { $stomp = $this->getMockBuilder(Client::class) - ->setMethods(['sendFrame', 'isConnected']) + ->onlyMethods(['sendFrame', 'isConnected']) ->disableOriginalConstructor() ->getMock(); @@ -352,7 +352,7 @@ function (Frame $frame, $sync) use (&$lastSendFrame, &$lastSyncState) { public function testSendFrameWithSyncWillLeadToMessageWithReceiptHeader() { $connection = $this->getMockBuilder(Connection::class) - ->setMethods(['writeFrame', 'readFrame']) + ->onlyMethods(['writeFrame', 'readFrame']) ->disableOriginalConstructor() ->getMock(); @@ -376,7 +376,7 @@ function ($frame) use (&$lastWriteFrame) { ); $stomp = $this->getMockBuilder(Client::class) ->setConstructorArgs([$connection]) - ->setMethods(['isConnected']) + ->onlyMethods(['isConnected']) ->getMock(); $stomp->expects($this->any())->method('isConnected')->willReturn(true); /** @@ -397,7 +397,7 @@ function ($frame) use (&$lastWriteFrame) { public function testWaitForReceiptWillQueueUpFramesWithNoReceiptCommand() { $connection = $this->getMockBuilder(Connection::class) - ->setMethods(['readFrame']) + ->onlyMethods(['readFrame']) ->disableOriginalConstructor() ->getMock(); @@ -424,7 +424,7 @@ function () use (&$readFrames) { $stomp = $this->getMockBuilder(Client::class) ->setConstructorArgs([$connection]) - ->setMethods(['isConnected']) + ->onlyMethods(['isConnected']) ->getMock(); $stomp->expects($this->any())->method('isConnected')->willReturn(true); /** @@ -469,7 +469,7 @@ public function testDisconnectWillCallConnectionDisconnectEvenWhenWriteFails() { $connection = $this->getMockBuilder(Connection::class) ->setConstructorArgs(['tcp://127.0.0.1:']) - ->setMethods(['disconnect', 'readFrame', 'writeFrame', 'isConnected']) + ->onlyMethods(['disconnect', 'readFrame', 'writeFrame', 'isConnected']) ->getMock(); $connection->expects($this->any())->method('isConnected')->willReturn(true); @@ -504,7 +504,7 @@ public function testDisconnectWillCallConnectionDisconnectEvenWhenWriteFails() public function testClientWillAutoConnectOnSendFrame() { $connection = $this->getMockBuilder(Connection::class) - ->setMethods(['connect', 'getParser']) + ->onlyMethods(['connect', 'getParser']) ->disableOriginalConstructor() ->getMock(); $connection->expects($this->once())->method('connect'); @@ -521,7 +521,7 @@ public function testClientWillAutoConnectOnSendFrame() public function testClientWillAutoConnectOnGetProtocol() { $connection = $this->getMockBuilder(Connection::class) - ->setMethods(['connect', 'getParser']) + ->onlyMethods(['connect', 'getParser']) ->disableOriginalConstructor() ->getMock(); $connection->expects($this->once())->method('connect'); diff --git a/tests/Unit/Network/ConnectionTest.php b/tests/Unit/Network/ConnectionTest.php index 6f09194..e4cdfe5 100755 --- a/tests/Unit/Network/ConnectionTest.php +++ b/tests/Unit/Network/ConnectionTest.php @@ -120,7 +120,7 @@ public function testConnectionSetupTriesFullHostListBeforeGivingUp() { /** @var Connection|MockObject $connection */ $connection = $this->getMockBuilder(Connection::class) - ->setMethods(['connectSocket']) + ->onlyMethods(['connectSocket']) ->setConstructorArgs(['failover://(tcp://host1,tcp://host2,tcp://host3)']) ->getMock(); @@ -182,7 +182,7 @@ public function testMessageWithNullBytesAfterFullReadWontCauseReadException() stream_wrapper_register('stompFakeStream', FakeStream::class); $mock = $this->getMockBuilder(Connection::class) - ->setMethods(['getConnection']) + ->onlyMethods(['getConnection']) ->setConstructorArgs(['stompFakeStream://notInUse']) ->getMock(); $fakeStreamResource = fopen('stompFakeStream://notInUse', 'rw'); @@ -212,7 +212,7 @@ public function testSendAliveWillCauseConnectionException() $mock = $this->getMockBuilder(Connection::class) - ->setMethods(['getConnection']) + ->onlyMethods(['getConnection']) ->setConstructorArgs(['stompFakeStream://notInUse']) ->getMock(); $fakeStreamResource = fopen('stompFakeStream://notInUse', 'rw'); diff --git a/tests/Unit/Network/Observer/ConnectionObserverCollectionTest.php b/tests/Unit/Network/Observer/ConnectionObserverCollectionTest.php index e7ba9c9..ebbe307 100644 --- a/tests/Unit/Network/Observer/ConnectionObserverCollectionTest.php +++ b/tests/Unit/Network/Observer/ConnectionObserverCollectionTest.php @@ -37,7 +37,7 @@ public function testEventForward() $frameA = new Message('message-a'); $frameB = new Message('message-b'); $observerA = $this->getMockBuilder(ConnectionObserver::class) - ->setMethods(['sentFrame', 'emptyLineReceived', 'emptyBuffer', 'receivedFrame', 'emptyRead']) + ->onlyMethods(['sentFrame', 'emptyLineReceived', 'emptyBuffer', 'receivedFrame', 'emptyRead']) ->getMock(); $observerA->expects($this->exactly(1))->method('sentFrame')->with($frameA); $observerA->expects($this->exactly(1))->method('emptyLineReceived'); @@ -46,7 +46,7 @@ public function testEventForward() $observerA->expects($this->exactly(1))->method('receivedFrame')->with($frameB); $observerB = $this->getMockBuilder(ConnectionObserver::class) - ->setMethods(['sentFrame', 'emptyLineReceived', 'emptyBuffer', 'receivedFrame', 'emptyRead']) + ->onlyMethods(['sentFrame', 'emptyLineReceived', 'emptyBuffer', 'receivedFrame', 'emptyRead']) ->getMock(); $observerB->expects($this->exactly(1))->method('sentFrame')->with($frameA); $observerB->expects($this->exactly(1))->method('emptyLineReceived'); diff --git a/tests/Unit/Network/Observer/HeartbeatEmitterTest.php b/tests/Unit/Network/Observer/HeartbeatEmitterTest.php index 51ecf62..02a8c1f 100644 --- a/tests/Unit/Network/Observer/HeartbeatEmitterTest.php +++ b/tests/Unit/Network/Observer/HeartbeatEmitterTest.php @@ -45,7 +45,7 @@ protected function setUp(): void parent::setUp(); $this->connection = $this->getMockBuilder(Connection::class) ->disableOriginalConstructor() - ->setMethods(['sendAlive', 'getReadTimeout']) + ->onlyMethods(['sendAlive', 'getReadTimeout']) ->getMock(); $this->connection->expects($this->any())->method('sendAlive')->willReturnCallback( function () { diff --git a/tests/Unit/Network/Observer/ServerAliveObserverTest.php b/tests/Unit/Network/Observer/ServerAliveObserverTest.php index 68d1615..7da9c48 100644 --- a/tests/Unit/Network/Observer/ServerAliveObserverTest.php +++ b/tests/Unit/Network/Observer/ServerAliveObserverTest.php @@ -71,7 +71,7 @@ public function testObserverMapping($activityMethod, $observerMethod = null) { $methods = ['rememberActivity', 'checkDelayed']; $instance = $this->getMockBuilder(ServerAliveObserver::class) - ->setMethods($methods) + ->onlyMethods($methods) ->getMock(); foreach ($methods as $method) { $instance->expects(($observerMethod === $method) ? $this->once() : $this->never()) diff --git a/tests/Unit/SimpleStompTest.php b/tests/Unit/SimpleStompTest.php index 0ba11d6..8696917 100644 --- a/tests/Unit/SimpleStompTest.php +++ b/tests/Unit/SimpleStompTest.php @@ -31,7 +31,7 @@ public function testSendIsMappedToClient() $stomp = $this->getMockBuilder(Client::class) ->disableOriginalConstructor() - ->setMethods(['send']) + ->onlyMethods(['send']) ->getMock(); $stomp->expects($this->once())->method('send')->with($queue, $message); @@ -53,7 +53,7 @@ public function testActionToProtocolMapping($method, array $parameters, array $e { $stomp = $this->getMockBuilder(Client::class) ->disableOriginalConstructor() - ->setMethods(['sendFrame', 'getProtocol']) + ->onlyMethods(['sendFrame', 'getProtocol']) ->getMock(); $stomp->expects($this->any()) diff --git a/tests/Unit/StatefulStompTest.php b/tests/Unit/StatefulStompTest.php index 5e8b162..de2869c 100644 --- a/tests/Unit/StatefulStompTest.php +++ b/tests/Unit/StatefulStompTest.php @@ -82,7 +82,7 @@ protected function getStatefulStompWithState($state, array $init) { $client = $this->getMockBuilder(Client::class) ->disableOriginalConstructor() - ->setMethods(['getProtocol', 'sendFrame', 'readFrame', 'isConnected']) + ->onlyMethods(['getProtocol', 'sendFrame', 'readFrame', 'isConnected']) ->getMock(); $client->method('getProtocol')->willReturn(new Protocol('stateful-test-client', Version::VERSION_1_2)); diff --git a/tests/Unit/States/ConsumerStateTest.php b/tests/Unit/States/ConsumerStateTest.php index 18c6f0d..fe0ee13 100644 --- a/tests/Unit/States/ConsumerStateTest.php +++ b/tests/Unit/States/ConsumerStateTest.php @@ -25,7 +25,7 @@ public function testUnsubscribeWillThrowExceptionIfGivenIdIsNotActive() { $client = $this->getMockBuilder(Client::class) ->disableOriginalConstructor() - ->setMethods(['getProtocol', 'sendFrame', 'readFrame']) + ->onlyMethods(['getProtocol', 'sendFrame', 'readFrame']) ->getMock(); /** diff --git a/tests/Unit/Transport/ParserTest.php b/tests/Unit/Transport/ParserTest.php index 76bd499..0b12042 100644 --- a/tests/Unit/Transport/ParserTest.php +++ b/tests/Unit/Transport/ParserTest.php @@ -277,7 +277,7 @@ public function testParserWhenHeaderStopSequenceWithoutCarriageReturnIsPartOfBod public function testParserTriggersObserversHeartBeatAfterFrame() { $observer = $this->getMockBuilder(ConnectionObserver::class) - ->setMethods(['emptyLineReceived', 'emptyBuffer', 'receivedFrame', 'sentFrame', 'emptyRead']) + ->onlyMethods(['emptyLineReceived', 'emptyBuffer', 'receivedFrame', 'sentFrame', 'emptyRead']) ->getMock(); $observer->expects($this->once())->method('emptyLineReceived'); $observer->expects($this->once())->method('receivedFrame'); @@ -295,7 +295,7 @@ public function testParserTriggersObserversHeartBeatAfterFrame() public function testParserTriggersObserversOnSingleHeartBeat() { $observer = $this->getMockBuilder(ConnectionObserver::class) - ->setMethods(['emptyLineReceived', 'emptyBuffer', 'receivedFrame', 'sentFrame', 'emptyRead']) + ->onlyMethods(['emptyLineReceived', 'emptyBuffer', 'receivedFrame', 'sentFrame', 'emptyRead']) ->getMock(); $observer->expects($this->once())->method('emptyLineReceived'); $observer->expects($this->never())->method('receivedFrame'); @@ -311,7 +311,7 @@ public function testParserTriggersObserversOnSingleHeartBeat() public function testParserTriggersObserversOnMultipleHeartBeatOnlyOnce() { $observer = $this->getMockBuilder(ConnectionObserver::class) - ->setMethods(['emptyLineReceived', 'emptyBuffer', 'receivedFrame', 'sentFrame', 'emptyRead']) + ->onlyMethods(['emptyLineReceived', 'emptyBuffer', 'receivedFrame', 'sentFrame', 'emptyRead']) ->getMock(); $observer->expects($this->once())->method('emptyLineReceived'); $observer->expects($this->never())->method('receivedFrame'); From 6c59bef9f9fb632ecb8f87de8bfbafdf69899c49 Mon Sep 17 00:00:00 2001 From: Daniel Esteve Date: Mon, 5 Dec 2022 15:05:14 +0100 Subject: [PATCH 4/4] nullable to string --- src/Protocol/Version.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Protocol/Version.php b/src/Protocol/Version.php index 2d6c6a3..78e4809 100644 --- a/src/Protocol/Version.php +++ b/src/Protocol/Version.php @@ -69,7 +69,7 @@ public function __construct(Frame $frame) */ public function getProtocol($clientId, $default = 'ActiveMQ/5.11.1') { - $server = $this->frame['server'] ? trim($this->frame['server']) : $default; + $server = trim((string) $this->frame['server']) ?: $default; $version = $this->getVersion(); if (stristr($server, 'rabbitmq') !== false) { return new RabbitMq($clientId, $version, $server);