瀏覽代碼

Remplace all echo with writeln method of IO

François Pluchino 13 年之前
父節點
當前提交
0f9dcc9618

+ 1 - 1
src/Composer/Command/InstallCommand.php

@@ -123,7 +123,7 @@ EOT
         // prepare solver
         $installationManager = $composer->getInstallationManager();
         $policy              = new DependencyResolver\DefaultPolicy();
-        $solver              = new DependencyResolver\Solver($policy, $pool, $installedRepo);
+        $solver              = new DependencyResolver\Solver($policy, $pool, $installedRepo, $this->getApplication()->getIO());
 
         // solve dependencies
         $operations = $solver->solve($request);

+ 10 - 2
src/Composer/Console/Application.php

@@ -84,6 +84,14 @@ class Application extends BaseApplication
         return $this->composer;
     }
 
+    /**
+     * @return IOInterface
+     */
+    public function getIO()
+    {
+        return $this->io;
+    }
+
     /**
      * Bootstraps a Composer instance
      *
@@ -144,8 +152,8 @@ class Application extends BaseApplication
 
         // initialize installation manager
         $im = new Installer\InstallationManager($vendorDir);
-        $im->addInstaller(new Installer\LibraryInstaller($vendorDir, $binDir, $dm, $rm->getLocalRepository(), null));
-        $im->addInstaller(new Installer\InstallerInstaller($vendorDir, $binDir, $dm, $rm->getLocalRepository(), $im));
+        $im->addInstaller(new Installer\LibraryInstaller($vendorDir, $binDir, $dm, $rm->getLocalRepository(), $io, null));
+        $im->addInstaller(new Installer\InstallerInstaller($vendorDir, $binDir, $dm, $rm->getLocalRepository(), $io, $im));
 
         // load package
         $loader  = new Package\Loader\RootPackageLoader($rm);

+ 12 - 8
src/Composer/DependencyResolver/Solver.php

@@ -12,6 +12,7 @@
 
 namespace Composer\DependencyResolver;
 
+use Composer\IO\IOInterface;
 use Composer\Repository\RepositoryInterface;
 use Composer\Package\PackageInterface;
 use Composer\DependencyResolver\Operation;
@@ -55,12 +56,15 @@ class Solver
     protected $packageToUpdateRule = array();
     protected $packageToFeatureRule = array();
 
-    public function __construct(PolicyInterface $policy, Pool $pool, RepositoryInterface $installed)
+    protected $io;
+
+    public function __construct(PolicyInterface $policy, Pool $pool, RepositoryInterface $installed, IOInterface $io)
     {
         $this->policy = $policy;
         $this->pool = $pool;
         $this->installed = $installed;
         $this->rules = new RuleSet;
+        $this->io = $io;
     }
 
     /**
@@ -2046,26 +2050,26 @@ class Solver
 
     public function printDecisionMap()
     {
-        echo "\nDecisionMap: \n";
+        $this->io->writeln("\nDecisionMap: ");
         foreach ($this->decisionMap as $packageId => $level) {
             if ($packageId === 0) {
                 continue;
             }
             if ($level > 0) {
-                echo '    +' . $this->pool->packageById($packageId) . "\n";
+                $this->io->writeln('    +' . $this->pool->packageById($packageId));
             } else {
-                echo '    -' . $this->pool->packageById($packageId) . "\n";
+                $this->io->writeln('    -' . $this->pool->packageById($packageId));
             }
         }
-        echo "\n";
+        $this->io->writeln('');
     }
 
     public function printDecisionQueue()
     {
-        echo "DecisionQueue: \n";
+        $this->io->writeln("DecisionQueue: ");
         foreach ($this->decisionQueue as $i => $literal) {
-            echo '    ' . $literal . ' ' . $this->decisionQueueWhy[$i] . "\n";
+            $this->io->writeln('    ' . $literal . ' ' . $this->decisionQueueWhy[$i]);
         }
-        echo "\n";
+        $this->io->writeln('');
     }
 }

+ 4 - 2
src/Composer/Installer/InstallerInstaller.php

@@ -12,6 +12,7 @@
 
 namespace Composer\Installer;
 
+use Composer\IO\IOInterface;
 use Composer\Autoload\AutoloadGenerator;
 use Composer\Downloader\DownloadManager;
 use Composer\Repository\WritableRepositoryInterface;
@@ -33,10 +34,11 @@ class InstallerInstaller extends LibraryInstaller
      * @param   string                      $binDir     relative path for binaries
      * @param   DownloadManager             $dm         download manager
      * @param   WritableRepositoryInterface $repository repository controller
+     * @param   IOInterface                 $io         io instance
      */
-    public function __construct($vendorDir, $binDir, DownloadManager $dm, WritableRepositoryInterface $repository, InstallationManager $im)
+    public function __construct($vendorDir, $binDir, DownloadManager $dm, WritableRepositoryInterface $repository, IOInterface $io, InstallationManager $im)
     {
-        parent::__construct($vendorDir, $binDir, $dm, $repository, 'composer-installer');
+        parent::__construct($vendorDir, $binDir, $dm, $repository, $io, 'composer-installer');
         $this->installationManager = $im;
 
         foreach ($repository->getPackages() as $package) {

+ 6 - 2
src/Composer/Installer/LibraryInstaller.php

@@ -12,6 +12,7 @@
 
 namespace Composer\Installer;
 
+use Composer\IO\IOInterface;
 use Composer\Downloader\DownloadManager;
 use Composer\Repository\WritableRepositoryInterface;
 use Composer\DependencyResolver\Operation\OperationInterface;
@@ -30,6 +31,7 @@ class LibraryInstaller implements InstallerInterface
     protected $binDir;
     protected $downloadManager;
     protected $repository;
+    protected $io;
     private $type;
     private $filesystem;
 
@@ -40,12 +42,14 @@ class LibraryInstaller implements InstallerInterface
      * @param   string                      $binDir     relative path for binaries
      * @param   DownloadManager             $dm         download manager
      * @param   WritableRepositoryInterface $repository repository controller
+     * @param   IOInterface                 $io         io instance
      * @param   string                      $type       package type that this installer handles
      */
-    public function __construct($vendorDir, $binDir, DownloadManager $dm, WritableRepositoryInterface $repository, $type = 'library')
+    public function __construct($vendorDir, $binDir, DownloadManager $dm, WritableRepositoryInterface $repository, IOInterface $io, $type = 'library')
     {
         $this->downloadManager = $dm;
         $this->repository = $repository;
+        $this->io = $io;
         $this->type = $type;
 
         $this->filesystem = new Filesystem();
@@ -136,7 +140,7 @@ class LibraryInstaller implements InstallerInterface
         foreach ($package->getBinaries() as $bin) {
             $link = $this->binDir.'/'.basename($bin);
             if (file_exists($link)) {
-                echo 'Skipped installation of '.$bin.' for package '.$package->getName().', name conflicts with an existing file'.PHP_EOL;
+                $this->io->writeln('Skipped installation of '.$bin.' for package '.$package->getName().', name conflicts with an existing file');
                 continue;
             }
             $bin = $this->getInstallPath($package).'/'.$bin;