mirror of
https://github.com/composer/composer
synced 2025-05-10 09:02:59 +00:00
List project suggestions in create-project command
Resolves https://github.com/composer/composer/issues/2752
This commit is contained in:
parent
e94066967c
commit
cc389d6c1a
4 changed files with 386 additions and 21 deletions
|
@ -17,6 +17,7 @@ use Composer\Factory;
|
|||
use Composer\Installer;
|
||||
use Composer\Installer\ProjectInstaller;
|
||||
use Composer\Installer\InstallationManager;
|
||||
use Composer\Installer\SuggestedPackagesReporter;
|
||||
use Composer\IO\IOInterface;
|
||||
use Composer\Package\BasePackage;
|
||||
use Composer\DependencyResolver\Pool;
|
||||
|
@ -47,6 +48,11 @@ use Composer\Package\Version\VersionParser;
|
|||
*/
|
||||
class CreateProjectCommand extends BaseCommand
|
||||
{
|
||||
/**
|
||||
* @var SuggestedPackagesReporter
|
||||
*/
|
||||
protected $suggestedPackagesReporter;
|
||||
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
|
@ -142,6 +148,8 @@ EOT
|
|||
// we need to manually load the configuration to pass the auth credentials to the io interface!
|
||||
$io->loadConfiguration($config);
|
||||
|
||||
$this->suggestedPackagesReporter = new SuggestedPackagesReporter($io);
|
||||
|
||||
if ($packageName !== null) {
|
||||
$installedFromVcs = $this->installRootPackage($io, $config, $packageName, $directory, $packageVersion, $stability, $preferSource, $preferDist, $installDevPackages, $repository, $disablePlugins, $noScripts, $keepVcs, $noProgress);
|
||||
} else {
|
||||
|
@ -168,7 +176,8 @@ EOT
|
|||
->setPreferDist($preferDist)
|
||||
->setDevMode($installDevPackages)
|
||||
->setRunScripts(!$noScripts)
|
||||
->setIgnorePlatformRequirements($ignorePlatformReqs);
|
||||
->setIgnorePlatformRequirements($ignorePlatformReqs)
|
||||
->setSuggestedPackagesReporter($this->suggestedPackagesReporter);
|
||||
|
||||
if ($disablePlugins) {
|
||||
$installer->disablePlugins();
|
||||
|
@ -318,6 +327,9 @@ EOT
|
|||
$im->install(new InstalledFilesystemRepository(new JsonFile('php://memory')), new InstallOperation($package));
|
||||
$im->notifyInstalls($io);
|
||||
|
||||
// collect suggestions
|
||||
$this->suggestedPackagesReporter->addSuggestionsFromPackage($package);
|
||||
|
||||
$installedFromVcs = 'source' === $package->getInstallationSource();
|
||||
|
||||
$io->writeError('<info>Created project in ' . $directory . '</info>');
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue