* Jordi Boggiano * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Composer\Repository; use Composer\Package\PackageInterface; /** * Repository interface. * * @author Nils Adermann * @author Konstantin Kudryashov */ interface RepositoryInterface extends \Countable { /** * Checks if specified package registered (installed). * * @param PackageInterface $package package instance * * @return Boolean */ public function hasPackage(PackageInterface $package); /** * Searches for the first match of a package by name and version. * * @param string $name package name * @param string $version package version * * @return PackageInterface|null */ public function findPackage($name, $version); /** * Searches for all packages matching a name and optionally a version. * * @param string $name package name * @param string $version package version * * @return array */ public function findPackages($name, $version = null); /** * Returns list of registered packages. * * @return array */ public function getPackages(); }