Browse Source

Show exact version being installed in create-project, fixes #724

Jordi Boggiano 13 năm trước cách đây
mục cha
commit
713309b38c

+ 7 - 2
src/Composer/Command/CreateProjectCommand.php

@@ -24,7 +24,9 @@ use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Input\InputOption;
 use Symfony\Component\Console\Output\OutputInterface;
 use Composer\Json\JsonFile;
+use Composer\Util\Filesystem;
 use Composer\Util\RemoteFilesystem;
+use Composer\Package\Version\VersionParser;
 
 /**
  * Install a package as new project into new directory.
@@ -116,11 +118,14 @@ EOT
             }
         }
 
-        $io->write('<info>Installing ' . $package->getName() . ' as new project.</info>', true);
+        $fs = new Filesystem();
+        $prettyDirectory = rtrim($fs->isAbsolutePath($directory) ? $fs->findShortestPath(getcwd(), $directory, true) : $directory, '\\/') . '/';
+
+        $io->write('<info>Installing ' . $package->getName() . ' (' . VersionParser::formatVersion($package) . ') in '.$prettyDirectory.'</info>', true);
         $projectInstaller = new ProjectInstaller($directory, $dm);
         $projectInstaller->install(new InstalledFilesystemRepository(new JsonFile('php://memory')), $package);
 
-        $io->write('<info>Created project into directory ' . $directory . '</info>', true);
+        $io->write('<info>Created project in ' . $directory . '</info>', true);
         chdir($directory);
 
         $composer = Factory::create($io);

+ 2 - 5
src/Composer/DependencyResolver/Operation/SolverOperation.php

@@ -12,6 +12,7 @@
 
 namespace Composer\DependencyResolver\Operation;
 
+use Composer\Package\Version\VersionParser;
 use Composer\Package\PackageInterface;
 
 /**
@@ -45,10 +46,6 @@ abstract class SolverOperation implements OperationInterface
 
     protected function formatVersion(PackageInterface $package)
     {
-        if (!$package->isDev() || !in_array($package->getSourceType(), array('hg', 'git'))) {
-            return $package->getPrettyVersion();
-        }
-
-        return $package->getPrettyVersion().' '.substr($package->getSourceReference(), 0, 6);
+        return VersionParser::formatVersion($package);
     }
 }

+ 10 - 0
src/Composer/Package/Version/VersionParser.php

@@ -13,6 +13,7 @@
 namespace Composer\Package\Version;
 
 use Composer\Package\BasePackage;
+use Composer\Package\PackageInterface;
 use Composer\Package\LinkConstraint\MultiConstraint;
 use Composer\Package\LinkConstraint\VersionConstraint;
 
@@ -58,6 +59,15 @@ class VersionParser
         return $stability === 'rc' ? 'RC' : $stability;
     }
 
+    static public function formatVersion(PackageInterface $package)
+    {
+        if (!$package->isDev() || !in_array($package->getSourceType(), array('hg', 'git'))) {
+            return $package->getPrettyVersion();
+        }
+
+        return $package->getPrettyVersion().' '.substr($package->getSourceReference(), 0, 6);
+    }
+
     /**
      * Normalizes a version string to be able to perform comparisons on it
      *