From 68e9ea0553ef6e2ee8db5c1d98829f111e623ec2 Mon Sep 17 00:00:00 2001 From: W0rma Date: Sun, 30 Jan 2022 21:08:53 +0100 Subject: [PATCH] Fix incompatibilities with some null values for PHP 8.1 (#114) --- src/Negotiation/BaseAccept.php | 6 +++++- src/Negotiation/LanguageNegotiator.php | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Negotiation/BaseAccept.php b/src/Negotiation/BaseAccept.php index 3c58447..a4663d2 100644 --- a/src/Negotiation/BaseAccept.php +++ b/src/Negotiation/BaseAccept.php @@ -112,11 +112,15 @@ public function hasParameter($key) /** * - * @param string $acceptPart + * @param string|null $acceptPart * @return array */ private function parseParameters($acceptPart) { + if ($acceptPart === null) { + return ['', []]; + } + $parts = explode(';', $acceptPart); $type = array_shift($parts); diff --git a/src/Negotiation/LanguageNegotiator.php b/src/Negotiation/LanguageNegotiator.php index ef343ce..ba33616 100644 --- a/src/Negotiation/LanguageNegotiator.php +++ b/src/Negotiation/LanguageNegotiator.php @@ -27,8 +27,8 @@ protected function match(AcceptHeader $acceptLanguage, AcceptHeader $priority, $ $as = $acceptLanguage->getSubPart(); $ps = $priority->getSubPart(); - $baseEqual = !strcasecmp($ab, $pb); - $subEqual = !strcasecmp($as, $ps); + $baseEqual = !strcasecmp((string)$ab, (string)$pb); + $subEqual = !strcasecmp((string)$as, (string)$ps); if (($ab == '*' || $baseEqual) && ($as === null || $subEqual || null === $ps)) { $score = 10 * $baseEqual + $subEqual;