瀏覽代碼

Added a method to find packages by name

Christophe Coevoet 13 年之前
父節點
當前提交
fc17e26bc3
共有 2 個文件被更改,包括 22 次插入0 次删除
  1. 13 0
      src/Composer/Repository/ArrayRepository.php
  2. 9 0
      src/Composer/Repository/RepositoryInterface.php

+ 13 - 0
src/Composer/Repository/ArrayRepository.php

@@ -41,6 +41,19 @@ class ArrayRepository implements RepositoryInterface
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    public function findPackagesByName($name)
+    {
+        // normalize name
+        $name = strtolower($name);
+
+        return array_filter($this->getPackages(), function(PackageInterface $package) use ($name) {
+            return $package->getName() === $name;
+        });
+    }
+
     /**
      * {@inheritDoc}
      */

+ 9 - 0
src/Composer/Repository/RepositoryInterface.php

@@ -41,6 +41,15 @@ interface RepositoryInterface extends \Countable
      */
     function findPackage($name, $version);
 
+    /**
+     * Searches for packages by it's name .
+     *
+     * @param   string  $name       package name
+     *
+     * @return  array
+     */
+    function findPackagesByName($name);
+
     /**
      * Returns list of registered packages.
      *