diff --git a/src/Model/Package.php b/src/Model/Package.php index 7ddc90f..7d8b96f 100644 --- a/src/Model/Package.php +++ b/src/Model/Package.php @@ -44,7 +44,7 @@ class Package extends DataObject */ public function getTitle() { - return preg_replace('#^[^/]+/(silverstripe-)?#', '', $this->Name); + return preg_replace('#^[^/]+/(silverstripe-)?#', '', $this->Name ?? ''); } /** diff --git a/src/Reports/SiteSummary.php b/src/Reports/SiteSummary.php index 94caa69..be6c8cb 100644 --- a/src/Reports/SiteSummary.php +++ b/src/Reports/SiteSummary.php @@ -209,7 +209,7 @@ protected function resolveCmsVersion() ]; $this->extend('updateVersionModules', $versionModules); - $records = $this->sourceRecords()->filter('Name', array_keys($versionModules)); + $records = $this->sourceRecords()->filter('Name', array_keys($versionModules ?? [])); $versionParts = []; foreach ($versionModules as $name => $label) { diff --git a/src/Tasks/UpdatePackageInfoTask.php b/src/Tasks/UpdatePackageInfoTask.php index 2ddaa99..9bfffa4 100644 --- a/src/Tasks/UpdatePackageInfoTask.php +++ b/src/Tasks/UpdatePackageInfoTask.php @@ -163,7 +163,7 @@ public function run($request) $packages = $this->getPackageInfo($rawPackages); // Get "name" from $packages and put into an array - $moduleNames = array_column($packages, 'Name'); + $moduleNames = array_column($packages ?? [], 'Name'); $supportedPackages = $this->getSupportedPackages(); $moduleHealthInfo = $this->getHealthIndicator($moduleNames); @@ -179,7 +179,7 @@ public function run($request) foreach ($packages as $package) { $packageName = $package['Name']; if (is_array($supportedPackages)) { - $package['Supported'] = in_array($packageName, $supportedPackages); + $package['Supported'] = in_array($packageName, $supportedPackages ?? []); } if (is_array($moduleHealthInfo) && isset($moduleHealthInfo[$packageName])) { $package['Rating'] = $moduleHealthInfo[$packageName]; @@ -202,12 +202,12 @@ public function getPackageInfo($packageList) // Convert object to array, with Capitalised keys $package = get_object_vars($package); return array_combine( - array_map('ucfirst', array_keys($package)), - $package + array_map('ucfirst', array_keys($package ?? [])), + $package ?? [] ); }; - $packageList = array_map($formatInfo, $packageList); + $packageList = array_map($formatInfo, $packageList ?? []); $this->extend('updatePackageInfo', $packageList); return $packageList; } diff --git a/src/Util/ApiLoader.php b/src/Util/ApiLoader.php index c3c2eb5..c8437f7 100644 --- a/src/Util/ApiLoader.php +++ b/src/Util/ApiLoader.php @@ -71,7 +71,7 @@ public function doRequest($endpoint, callable $callback) throw new RuntimeException($failureMessage . 'Error code ' . $response->getStatusCode()); } - if (!in_array('application/json', $response->getHeader('Content-Type'))) { + if (!in_array('application/json', $response->getHeader('Content-Type') ?? [])) { throw new RuntimeException($failureMessage . 'Response is not JSON'); } @@ -176,8 +176,8 @@ protected function handleCacheFromResponse(Response $response, $result) // Combine separate header rows $cacheControl = implode(', ', $cacheControl); - if (strpos($cacheControl, 'no-store') === false - && preg_match('/(?:max-age=)(\d+)/i', $cacheControl, $matches) + if (strpos($cacheControl ?? '', 'no-store') === false + && preg_match('/(?:max-age=)(\d+)/i', $cacheControl ?? '', $matches) ) { $duration = (int) $matches[1]; diff --git a/src/Util/ComposerLoader.php b/src/Util/ComposerLoader.php index 3e99ec6..7e4c48a 100644 --- a/src/Util/ComposerLoader.php +++ b/src/Util/ComposerLoader.php @@ -59,8 +59,8 @@ public function build() throw new Exception('composer.json or composer.lock could not be found!'); } - $this->setJson(json_decode($composerJson)); - $this->setLock(json_decode($composerLock)); + $this->setJson(json_decode($composerJson ?? '')); + $this->setLock(json_decode($composerLock ?? '')); $this->extend('onAfterBuild'); } diff --git a/src/Util/ModuleHealthLoader.php b/src/Util/ModuleHealthLoader.php index 89e7f43..6580994 100644 --- a/src/Util/ModuleHealthLoader.php +++ b/src/Util/ModuleHealthLoader.php @@ -46,6 +46,6 @@ public function setModuleNames(array $moduleNames) protected function getCacheKey() { - return sha1(json_encode($this->getModuleNames())); + return sha1(json_encode($this->getModuleNames()) ?? ''); } } diff --git a/tests/Model/PackageTest.php b/tests/Model/PackageTest.php index 729127e..4392c07 100644 --- a/tests/Model/PackageTest.php +++ b/tests/Model/PackageTest.php @@ -74,8 +74,8 @@ public function testBadges() // and that all our input is output reset($badgeControlSample); foreach ($badgeViewData as $badgeData) { - $title = key($badgeControlSample); - $type = current($badgeControlSample); + $title = key($badgeControlSample ?? []); + $type = current($badgeControlSample ?? []); $this->assertSame( [ 'Title' => $title,