From fc17e26bc326948ca38679464a2228716073e95f Mon Sep 17 00:00:00 2001 From: Christophe Coevoet Date: Mon, 16 Jan 2012 12:44:47 +0100 Subject: [PATCH] Added a method to find packages by name --- src/Composer/Repository/ArrayRepository.php | 13 +++++++++++++ src/Composer/Repository/RepositoryInterface.php | 9 +++++++++ 2 files changed, 22 insertions(+) diff --git a/src/Composer/Repository/ArrayRepository.php b/src/Composer/Repository/ArrayRepository.php index 06910bbe3..724f9bd4c 100644 --- a/src/Composer/Repository/ArrayRepository.php +++ b/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} */ diff --git a/src/Composer/Repository/RepositoryInterface.php b/src/Composer/Repository/RepositoryInterface.php index a94ecea4c..d791b161d 100644 --- a/src/Composer/Repository/RepositoryInterface.php +++ b/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. *