From 1bfaf12909187c5f2ab38b49573dc0594a8e9e47 Mon Sep 17 00:00:00 2001 From: Steve Boyd Date: Wed, 13 Apr 2022 10:29:57 +1200 Subject: [PATCH] ENH PHP 8.1 compatibility --- src/Tasks/CheckExternalLinksTask.php | 8 ++++---- src/Tasks/CurlLinkChecker.php | 4 ++-- tests/php/ExternalLinksTest.php | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Tasks/CheckExternalLinksTask.php b/src/Tasks/CheckExternalLinksTask.php index c5d8204..54e07fa 100644 --- a/src/Tasks/CheckExternalLinksTask.php +++ b/src/Tasks/CheckExternalLinksTask.php @@ -101,7 +101,7 @@ class CheckExternalLinksTask extends BuildTask { $class = $link->getAttribute('class'); $href = $link->getAttribute('href'); - $markedBroken = preg_match('/\b(ss-broken)\b/', $class); + $markedBroken = preg_match('/\b(ss-broken)\b/', $class ?? ''); // Check link $httpCode = $this->linkChecker->checkLink($href); @@ -127,9 +127,9 @@ class CheckExternalLinksTask extends BuildTask if ($foundBroken) { $class .= ' ss-broken'; } else { - $class = preg_replace('/\s*\b(ss-broken)\b\s*/', ' ', $class); + $class = preg_replace('/\s*\b(ss-broken)\b\s*/', ' ', $class ?? ''); } - $link->setAttribute('class', trim($class)); + $link->setAttribute('class', trim($class ?? '')); } /** @@ -147,7 +147,7 @@ class CheckExternalLinksTask extends BuildTask // do we have any whitelisted codes $ignoreCodes = $this->config()->get('ignore_codes'); - if (is_array($ignoreCodes) && in_array($httpCode, $ignoreCodes)) { + if (is_array($ignoreCodes) && in_array($httpCode, $ignoreCodes ?? [])) { return false; } diff --git a/src/Tasks/CurlLinkChecker.php b/src/Tasks/CurlLinkChecker.php index cf4fc42..770e2cc 100644 --- a/src/Tasks/CurlLinkChecker.php +++ b/src/Tasks/CurlLinkChecker.php @@ -58,11 +58,11 @@ class CurlLinkChecker implements LinkChecker public function checkLink($href) { // Skip non-external links - if (!preg_match('/^https?[^:]*:\/\//', $href)) { + if (!preg_match('/^https?[^:]*:\/\//', $href ?? '')) { return null; } - $cacheKey = md5($href); + $cacheKey = md5($href ?? ''); if (!$this->config()->get('bypass_cache')) { // Check if we have a cached result $result = $this->getCache()->get($cacheKey, false); diff --git a/tests/php/ExternalLinksTest.php b/tests/php/ExternalLinksTest.php index bd7fe9f..433ea5b 100644 --- a/tests/php/ExternalLinksTest.php +++ b/tests/php/ExternalLinksTest.php @@ -68,7 +68,7 @@ class ExternalLinksTest extends SapphireTest 'http://www.broken.com/url/thing', 'http://www.nodomain.com' ), - array_values($links->map('ID', 'Link')->toArray()) + array_values($links->map('ID', 'Link')->toArray() ?? []) ); // Check response codes are correct