From ee4ab0725d7d5231d642080d34900996294be824 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim=20D=C3=BCsterhus?= Date: Tue, 15 Nov 2022 15:48:17 +0100 Subject: [PATCH] Remove useless conditions in PackageInstallationDispatcher::installPackage() The `foreach()` loops handle empty arrays just fine. --- .../PackageInstallationDispatcher.class.php | 74 +++++++++---------- 1 file changed, 35 insertions(+), 39 deletions(-) diff --git a/wcfsetup/install/files/lib/system/package/PackageInstallationDispatcher.class.php b/wcfsetup/install/files/lib/system/package/PackageInstallationDispatcher.class.php index 2c5d343491..6540373a0b 100644 --- a/wcfsetup/install/files/lib/system/package/PackageInstallationDispatcher.class.php +++ b/wcfsetup/install/files/lib/system/package/PackageInstallationDispatcher.class.php @@ -498,35 +498,33 @@ class PackageInstallationDispatcher $installationStep = new PackageInstallationStep(); // check requirements - if (!empty($nodeData['requirements'])) { - foreach ($nodeData['requirements'] as $package => $requirementData) { - // get existing package - if ($requirementData['packageID']) { - $sql = "SELECT packageName, packageVersion - FROM wcf1_package - WHERE packageID = ?"; - $statement = WCF::getDB()->prepare($sql); - $statement->execute([$requirementData['packageID']]); - } else { - // try to find matching package - $sql = "SELECT packageName, packageVersion - FROM wcf1_package - WHERE package = ?"; - $statement = WCF::getDB()->prepare($sql); - $statement->execute([$package]); - } - $row = $statement->fetchArray(); + foreach ($nodeData['requirements'] as $package => $requirementData) { + // get existing package + if ($requirementData['packageID']) { + $sql = "SELECT packageName, packageVersion + FROM wcf1_package + WHERE packageID = ?"; + $statement = WCF::getDB()->prepare($sql); + $statement->execute([$requirementData['packageID']]); + } else { + // try to find matching package + $sql = "SELECT packageName, packageVersion + FROM wcf1_package + WHERE package = ?"; + $statement = WCF::getDB()->prepare($sql); + $statement->execute([$package]); + } + $row = $statement->fetchArray(); - // package is required but not available - if ($row === false) { - throw new SystemException("Package '" . $package . "' is required by '" . $nodeData['packageName'] . "', but is neither installed nor shipped."); - } + // package is required but not available + if ($row === false) { + throw new SystemException("Package '" . $package . "' is required by '" . $nodeData['packageName'] . "', but is neither installed nor shipped."); + } - // check version requirements - if ($requirementData['minVersion']) { - if (Package::compareVersion($row['packageVersion'], $requirementData['minVersion']) < 0) { - throw new SystemException("Package '" . $nodeData['packageName'] . "' requires package '" . $row['packageName'] . "' in version '" . $requirementData['minVersion'] . "', but only version '" . $row['packageVersion'] . "' is installed"); - } + // check version requirements + if ($requirementData['minVersion']) { + if (Package::compareVersion($row['packageVersion'], $requirementData['minVersion']) < 0) { + throw new SystemException("Package '" . $nodeData['packageName'] . "' requires package '" . $row['packageName'] . "' in version '" . $requirementData['minVersion'] . "', but only version '" . $row['packageVersion'] . "' is installed"); } } } @@ -589,19 +587,17 @@ class PackageInstallationDispatcher } // save excluded packages - if (\count($this->getArchive()->getExcludedPackages())) { - $sql = "INSERT INTO wcf1_package_exclusion - (packageID, excludedPackage, excludedPackageVersion) - VALUES (?, ?, ?)"; - $statement = WCF::getDB()->prepare($sql); + $sql = "INSERT INTO wcf1_package_exclusion + (packageID, excludedPackage, excludedPackageVersion) + VALUES (?, ?, ?)"; + $statement = WCF::getDB()->prepare($sql); - foreach ($this->getArchive()->getExcludedPackages() as $excludedPackage) { - $statement->execute([ - $this->queue->packageID, - $excludedPackage['name'], - $excludedPackage['version'], - ]); - } + foreach ($this->getArchive()->getExcludedPackages() as $excludedPackage) { + $statement->execute([ + $this->queue->packageID, + $excludedPackage['name'], + $excludedPackage['version'], + ]); } $requirements = $this->getArchive()->getExistingRequirements(); -- 2.20.1