From f761bf8d998d2ebf274e92704514a43f0b753f9c Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Mon, 6 Feb 2012 13:43:33 +0100 Subject: [PATCH] Simplify install() signature --- src/Composer/Command/InstallCommand.php | 30 ++++++++++++------------- src/Composer/Command/UpdateCommand.php | 7 +++--- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/src/Composer/Command/InstallCommand.php b/src/Composer/Command/InstallCommand.php index 0bc45a0a9..26e1a5ba2 100644 --- a/src/Composer/Command/InstallCommand.php +++ b/src/Composer/Command/InstallCommand.php @@ -31,6 +31,7 @@ use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Composer\DependencyResolver\Operation\InstallOperation; use Composer\DependencyResolver\Solver; +use Composer\IO\IOInterface; /** * @author Jordi Boggiano @@ -67,12 +68,11 @@ EOT $composer = $this->getComposer(); $io = $this->getApplication()->getIO(); $eventDispatcher = new EventDispatcher($composer, $io); + return $this->install( + $io, $composer, $eventDispatcher, - $input, - $output, - false, (Boolean)$input->getOption('dev'), (Boolean)$input->getOption('dry-run'), (Boolean)$input->getOption('verbose'), @@ -81,7 +81,7 @@ EOT ); } - public function install(Composer $composer, EventDispatcher $eventDispatcher, InputInterface $input, OutputInterface $output, $update, $preferSource, $dryRun, $verbose, $noInstallRecommends, $installSuggests, RepositoryInterface $additionalInstalledRepository = null) + public function install(IOInterface $io, Composer $composer, EventDispatcher $eventDispatcher, $preferSource = false, $dryRun = false, $verbose = false, $noInstallRecommends = false, $installSuggests = false, $update = false, RepositoryInterface $additionalInstalledRepository = null) { if ($dryRun) { $verbose = true; @@ -115,9 +115,9 @@ EOT // creating requirements request $request = new Request($pool); if ($update) { - $output->writeln('Updating dependencies'); + $io->write('Updating dependencies'); $installedPackages = $installedRepo->getPackages(); - $links = $this->collectLinks($input, $composer->getPackage(), $noInstallRecommends, $installSuggests); + $links = $this->collectLinks($composer->getPackage(), $noInstallRecommends, $installSuggests); foreach ($links as $link) { foreach ($installedPackages as $package) { @@ -130,10 +130,10 @@ EOT $request->install($link->getTarget(), $link->getConstraint()); } } elseif ($composer->getLocker()->isLocked()) { - $output->writeln('Installing from lock file'); + $io->write('Installing from lock file'); if (!$composer->getLocker()->isFresh()) { - $output->writeln('Your lock file is out of sync with your composer.json, run "composer.phar update" to update dependencies'); + $io->write('Your lock file is out of sync with your composer.json, run "composer.phar update" to update dependencies'); } foreach ($composer->getLocker()->getLockedPackages() as $package) { @@ -141,9 +141,9 @@ EOT $request->install($package->getName(), $constraint); } } else { - $output->writeln('Installing dependencies'); + $io->write('Installing dependencies'); - $links = $this->collectLinks($input, $composer->getPackage(), $noInstallRecommends, $installSuggests); + $links = $this->collectLinks($composer->getPackage(), $noInstallRecommends, $installSuggests); foreach ($links as $link) { $request->install($link->getTarget(), $link->getConstraint()); @@ -188,11 +188,11 @@ EOT // execute operations if (!$operations) { - $output->writeln('Nothing to install/update'); + $io->write('Nothing to install/update'); } foreach ($operations as $operation) { if ($verbose) { - $output->writeln((string) $operation); + $io->write((string) $operation); } if (!$dryRun) { $eventDispatcher->dispatchPackageEvent(constant('Composer\Script\ScriptEvents::PRE_PACKAGE_'.strtoupper($operation->getJobType())), $operation); @@ -204,12 +204,12 @@ EOT if (!$dryRun) { if ($update || !$composer->getLocker()->isLocked()) { $composer->getLocker()->lockPackages($localRepo->getPackages()); - $output->writeln('Writing lock file'); + $io->write('Writing lock file'); } $localRepo->write(); - $output->writeln('Generating autoload files'); + $io->write('Generating autoload files'); $generator = new AutoloadGenerator; $generator->dump($localRepo, $composer->getPackage(), $installationManager, $installationManager->getVendorPath().'/.composer'); @@ -219,7 +219,7 @@ EOT } } - private function collectLinks(InputInterface $input, PackageInterface $package, $noInstallRecommends, $installSuggests) + private function collectLinks(PackageInterface $package, $noInstallRecommends, $installSuggests) { $links = $package->getRequires(); diff --git a/src/Composer/Command/UpdateCommand.php b/src/Composer/Command/UpdateCommand.php index faeeb33fc..3c2b394c0 100644 --- a/src/Composer/Command/UpdateCommand.php +++ b/src/Composer/Command/UpdateCommand.php @@ -60,16 +60,15 @@ EOT $eventDispatcher = new EventDispatcher($composer, $io); return $installCommand->install( + $io, $composer, $eventDispatcher, - $input, - $output, - true, (Boolean)$input->getOption('dev'), (Boolean)$input->getOption('dry-run'), (Boolean)$input->getOption('verbose'), (Boolean)$input->getOption('no-install-recommends'), - (Boolean)$input->getOption('install-suggests') + (Boolean)$input->getOption('install-suggests'), + true ); } }