Further streamline the logic in PackageArchive::getExistingRequirements()
authorTim Düsterhus <duesterhus@woltlab.com>
Tue, 15 Nov 2022 10:07:26 +0000 (11:07 +0100)
committerTim Düsterhus <duesterhus@woltlab.com>
Tue, 15 Nov 2022 10:07:26 +0000 (11:07 +0100)
wcfsetup/install/files/lib/system/package/PackageArchive.class.php

index 4e79ab39100a9d883f455d7f590a7ef88cf2c763..71bda79e32af3ef9cdcc39325639e0ddd8061376 100644 (file)
@@ -706,26 +706,21 @@ class PackageArchive
      */
     public function getExistingRequirements()
     {
-        // build sql
-        $packageNames = [];
-        foreach ($this->requirements as $requirement) {
-            $packageNames[] = $requirement['name'];
-        }
+        $packageNames = \array_column($this->requirements, 'name');
+        \assert($packageNames !== []);
 
         // check whether the required packages do already exist
-        $existingPackages = [];
-        if (!empty($packageNames)) {
-            $conditions = new PreparedStatementConditionBuilder();
-            $conditions->add("package IN (?)", [$packageNames]);
+        $conditions = new PreparedStatementConditionBuilder();
+        $conditions->add("package IN (?)", [$packageNames]);
 
-            $sql = "SELECT  *
-                    FROM    wcf1_package
-                    {$conditions}";
-            $statement = WCF::getDB()->prepare($sql);
-            $statement->execute($conditions->getParameters());
-            while ($row = $statement->fetchArray()) {
-                $existingPackages[$row['package']] = $row;
-            }
+        $sql = "SELECT  *
+                FROM    wcf1_package
+                {$conditions}";
+        $statement = WCF::getDB()->prepare($sql);
+        $statement->execute($conditions->getParameters());
+        $existingPackages = [];
+        while ($row = $statement->fetchArray()) {
+            $existingPackages[$row['package']] = $row;
         }
 
         return $existingPackages;