Remove useless conditions in PackageInstallationDispatcher::installPackage()
authorTim Düsterhus <duesterhus@woltlab.com>
Tue, 15 Nov 2022 14:48:17 +0000 (15:48 +0100)
committerTim Düsterhus <duesterhus@woltlab.com>
Wed, 16 Nov 2022 10:58:46 +0000 (11:58 +0100)
The `foreach()` loops handle empty arrays just fine.

wcfsetup/install/files/lib/system/package/PackageInstallationDispatcher.class.php

index 2c5d343491eb7ab7b2df55a55d455a7752037431..6540373a0b5a79205bb6f0987a586ced5dd53230 100644 (file)
@@ -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();