Make use of the proper interface

main
Jordi Boggiano 12 years ago
parent a5e00a9e96
commit bf6fd10a8a

@ -16,6 +16,7 @@ use Composer\Package\PackageInterface;
use Composer\Package\AliasPackage; use Composer\Package\AliasPackage;
use Composer\Repository\RepositoryInterface; use Composer\Repository\RepositoryInterface;
use Composer\Repository\NotifiableRepositoryInterface; use Composer\Repository\NotifiableRepositoryInterface;
use Composer\Repository\InstalledRepositoryInterface;
use Composer\DependencyResolver\Operation\OperationInterface; use Composer\DependencyResolver\Operation\OperationInterface;
use Composer\DependencyResolver\Operation\InstallOperation; use Composer\DependencyResolver\Operation\InstallOperation;
use Composer\DependencyResolver\Operation\UpdateOperation; use Composer\DependencyResolver\Operation\UpdateOperation;
@ -96,12 +97,12 @@ class InstallationManager
/** /**
* Checks whether provided package is installed in one of the registered installers. * Checks whether provided package is installed in one of the registered installers.
* *
* @param RepositoryInterface $repo repository in which to check * @param InstalledRepositoryInterface $repo repository in which to check
* @param PackageInterface $package package instance * @param PackageInterface $package package instance
* *
* @return Boolean * @return Boolean
*/ */
public function isPackageInstalled(RepositoryInterface $repo, PackageInterface $package) public function isPackageInstalled(InstalledRepositoryInterface $repo, PackageInterface $package)
{ {
return $this->getInstaller($package->getType())->isInstalled($repo, $package); return $this->getInstaller($package->getType())->isInstalled($repo, $package);
} }

@ -15,7 +15,7 @@ namespace Composer\Installer;
use Composer\IO\IOInterface; use Composer\IO\IOInterface;
use Composer\Autoload\AutoloadGenerator; use Composer\Autoload\AutoloadGenerator;
use Composer\Downloader\DownloadManager; use Composer\Downloader\DownloadManager;
use Composer\Repository\WritableRepositoryInterface; use Composer\Repository\InstalledRepositoryInterface;
use Composer\DependencyResolver\Operation\OperationInterface; use Composer\DependencyResolver\Operation\OperationInterface;
use Composer\Package\PackageInterface; use Composer\Package\PackageInterface;
@ -35,7 +35,7 @@ class InstallerInstaller extends LibraryInstaller
* @param DownloadManager $dm download manager * @param DownloadManager $dm download manager
* @param IOInterface $io io instance * @param IOInterface $io io instance
* @param InstallationManager $im installation manager * @param InstallationManager $im installation manager
* @param array $localRepositories array of WritableRepositoryInterface * @param array $localRepositories array of InstalledRepositoryInterface
*/ */
public function __construct($vendorDir, $binDir, DownloadManager $dm, IOInterface $io, InstallationManager $im, array $localRepositories) public function __construct($vendorDir, $binDir, DownloadManager $dm, IOInterface $io, InstallationManager $im, array $localRepositories)
{ {
@ -54,7 +54,7 @@ class InstallerInstaller extends LibraryInstaller
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function install(WritableRepositoryInterface $repo, PackageInterface $package) public function install(InstalledRepositoryInterface $repo, PackageInterface $package)
{ {
$extra = $package->getExtra(); $extra = $package->getExtra();
if (empty($extra['class'])) { if (empty($extra['class'])) {
@ -68,7 +68,7 @@ class InstallerInstaller extends LibraryInstaller
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function update(WritableRepositoryInterface $repo, PackageInterface $initial, PackageInterface $target) public function update(InstalledRepositoryInterface $repo, PackageInterface $initial, PackageInterface $target)
{ {
$extra = $target->getExtra(); $extra = $target->getExtra();
if (empty($extra['class'])) { if (empty($extra['class'])) {

@ -14,7 +14,7 @@ namespace Composer\Installer;
use Composer\DependencyResolver\Operation\OperationInterface; use Composer\DependencyResolver\Operation\OperationInterface;
use Composer\Package\PackageInterface; use Composer\Package\PackageInterface;
use Composer\Repository\WritableRepositoryInterface; use Composer\Repository\InstalledRepositoryInterface;
/** /**
* Interface for the package installation manager. * Interface for the package installation manager.
@ -35,39 +35,39 @@ interface InstallerInterface
/** /**
* Checks that provided package is installed. * Checks that provided package is installed.
* *
* @param WritableRepositoryInterface $repo repository in which to check * @param InstalledRepositoryInterface $repo repository in which to check
* @param PackageInterface $package package instance * @param PackageInterface $package package instance
* *
* @return Boolean * @return Boolean
*/ */
function isInstalled(WritableRepositoryInterface $repo, PackageInterface $package); function isInstalled(InstalledRepositoryInterface $repo, PackageInterface $package);
/** /**
* Installs specific package. * Installs specific package.
* *
* @param WritableRepositoryInterface $repo repository in which to check * @param InstalledRepositoryInterface $repo repository in which to check
* @param PackageInterface $package package instance * @param PackageInterface $package package instance
*/ */
function install(WritableRepositoryInterface $repo, PackageInterface $package); function install(InstalledRepositoryInterface $repo, PackageInterface $package);
/** /**
* Updates specific package. * Updates specific package.
* *
* @param WritableRepositoryInterface $repo repository in which to check * @param InstalledRepositoryInterface $repo repository in which to check
* @param PackageInterface $initial already installed package version * @param PackageInterface $initial already installed package version
* @param PackageInterface $target updated version * @param PackageInterface $target updated version
* *
* @throws InvalidArgumentException if $from package is not installed * @throws InvalidArgumentException if $from package is not installed
*/ */
function update(WritableRepositoryInterface $repo, PackageInterface $initial, PackageInterface $target); function update(InstalledRepositoryInterface $repo, PackageInterface $initial, PackageInterface $target);
/** /**
* Uninstalls specific package. * Uninstalls specific package.
* *
* @param WritableRepositoryInterface $repo repository in which to check * @param InstalledRepositoryInterface $repo repository in which to check
* @param PackageInterface $package package instance * @param PackageInterface $package package instance
*/ */
function uninstall(WritableRepositoryInterface $repo, PackageInterface $package); function uninstall(InstalledRepositoryInterface $repo, PackageInterface $package);
/** /**
* Returns the installation path of a package * Returns the installation path of a package

@ -14,7 +14,7 @@ namespace Composer\Installer;
use Composer\IO\IOInterface; use Composer\IO\IOInterface;
use Composer\Downloader\DownloadManager; use Composer\Downloader\DownloadManager;
use Composer\Repository\WritableRepositoryInterface; use Composer\Repository\InstalledRepositoryInterface;
use Composer\DependencyResolver\Operation\OperationInterface; use Composer\DependencyResolver\Operation\OperationInterface;
use Composer\Package\PackageInterface; use Composer\Package\PackageInterface;
use Composer\Util\Filesystem; use Composer\Util\Filesystem;
@ -65,7 +65,7 @@ class LibraryInstaller implements InstallerInterface
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function isInstalled(WritableRepositoryInterface $repo, PackageInterface $package) public function isInstalled(InstalledRepositoryInterface $repo, PackageInterface $package)
{ {
return $repo->hasPackage($package) && is_readable($this->getInstallPath($package)); return $repo->hasPackage($package) && is_readable($this->getInstallPath($package));
} }
@ -73,7 +73,7 @@ class LibraryInstaller implements InstallerInterface
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function install(WritableRepositoryInterface $repo, PackageInterface $package) public function install(InstalledRepositoryInterface $repo, PackageInterface $package)
{ {
$this->initializeVendorDir(); $this->initializeVendorDir();
$downloadPath = $this->getInstallPath($package); $downloadPath = $this->getInstallPath($package);
@ -93,7 +93,7 @@ class LibraryInstaller implements InstallerInterface
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function update(WritableRepositoryInterface $repo, PackageInterface $initial, PackageInterface $target) public function update(InstalledRepositoryInterface $repo, PackageInterface $initial, PackageInterface $target)
{ {
if (!$repo->hasPackage($initial)) { if (!$repo->hasPackage($initial)) {
throw new \InvalidArgumentException('Package is not installed: '.$initial); throw new \InvalidArgumentException('Package is not installed: '.$initial);
@ -114,7 +114,7 @@ class LibraryInstaller implements InstallerInterface
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function uninstall(WritableRepositoryInterface $repo, PackageInterface $package) public function uninstall(InstalledRepositoryInterface $repo, PackageInterface $package)
{ {
if (!$repo->hasPackage($package)) { if (!$repo->hasPackage($package)) {
// TODO throw exception again here, when update is fixed and we don't have to remove+install (see #125) // TODO throw exception again here, when update is fixed and we don't have to remove+install (see #125)

@ -12,7 +12,7 @@
namespace Composer\Installer; namespace Composer\Installer;
use Composer\Repository\WritableRepositoryInterface; use Composer\Repository\InstalledRepositoryInterface;
use Composer\Package\PackageInterface; use Composer\Package\PackageInterface;
/** /**
@ -33,7 +33,7 @@ class MetapackageInstaller implements InstallerInterface
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function isInstalled(WritableRepositoryInterface $repo, PackageInterface $package) public function isInstalled(InstalledRepositoryInterface $repo, PackageInterface $package)
{ {
return $repo->hasPackage($package); return $repo->hasPackage($package);
} }
@ -41,7 +41,7 @@ class MetapackageInstaller implements InstallerInterface
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function install(WritableRepositoryInterface $repo, PackageInterface $package) public function install(InstalledRepositoryInterface $repo, PackageInterface $package)
{ {
$repo->addPackage(clone $package); $repo->addPackage(clone $package);
} }
@ -49,7 +49,7 @@ class MetapackageInstaller implements InstallerInterface
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function update(WritableRepositoryInterface $repo, PackageInterface $initial, PackageInterface $target) public function update(InstalledRepositoryInterface $repo, PackageInterface $initial, PackageInterface $target)
{ {
if (!$repo->hasPackage($initial)) { if (!$repo->hasPackage($initial)) {
throw new \InvalidArgumentException('Package is not installed: '.$initial); throw new \InvalidArgumentException('Package is not installed: '.$initial);
@ -62,7 +62,7 @@ class MetapackageInstaller implements InstallerInterface
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function uninstall(WritableRepositoryInterface $repo, PackageInterface $package) public function uninstall(InstalledRepositoryInterface $repo, PackageInterface $package)
{ {
if (!$repo->hasPackage($package)) { if (!$repo->hasPackage($package)) {
// TODO throw exception again here, when update is fixed and we don't have to remove+install (see #125) // TODO throw exception again here, when update is fixed and we don't have to remove+install (see #125)

@ -15,7 +15,7 @@ namespace Composer\Installer;
use Composer\DependencyResolver\Operation\OperationInterface; use Composer\DependencyResolver\Operation\OperationInterface;
use Composer\Package\PackageInterface; use Composer\Package\PackageInterface;
use Composer\Downloader\DownloadManager; use Composer\Downloader\DownloadManager;
use Composer\Repository\WritableRepositoryInterface; use Composer\Repository\InstalledRepositoryInterface;
/** /**
* Project Installer is used to install a single package into a directory as * Project Installer is used to install a single package into a directory as
@ -48,7 +48,7 @@ class ProjectInstaller implements InstallerInterface
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function isInstalled(WritableRepositoryInterface $repo, PackageInterface $package) public function isInstalled(InstalledRepositoryInterface $repo, PackageInterface $package)
{ {
return false; return false;
} }
@ -56,7 +56,7 @@ class ProjectInstaller implements InstallerInterface
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function install(WritableRepositoryInterface $repo, PackageInterface $package) public function install(InstalledRepositoryInterface $repo, PackageInterface $package)
{ {
$installPath = $this->installPath; $installPath = $this->installPath;
if (file_exists($installPath)) { if (file_exists($installPath)) {
@ -72,7 +72,7 @@ class ProjectInstaller implements InstallerInterface
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function update(WritableRepositoryInterface $repo, PackageInterface $initial, PackageInterface $target) public function update(InstalledRepositoryInterface $repo, PackageInterface $initial, PackageInterface $target)
{ {
throw new \InvalidArgumentException("not supported"); throw new \InvalidArgumentException("not supported");
} }
@ -80,7 +80,7 @@ class ProjectInstaller implements InstallerInterface
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function uninstall(WritableRepositoryInterface $repo, PackageInterface $package) public function uninstall(InstalledRepositoryInterface $repo, PackageInterface $package)
{ {
throw new \InvalidArgumentException("not supported"); throw new \InvalidArgumentException("not supported");
} }

Loading…
Cancel
Save