@ -543,16 +543,17 @@ class Installer
foreach ($operations as $operation) {
// collect suggestions
if ('install' === $operation->getJobType()) {
$jobType = $operation->getJobType();
if ('install' === $jobType) {
$this->suggestedPackagesReporter->addSuggestionsFromPackage($operation->getPackage());
}
// updating, force dev packages' references if they're in root package refs
if ($this->update) {
$package = null;
if ('update' === $operation->getJobType() ) {
if ('update' === $jobType ) {
$package = $operation->getTargetPackage();
} elseif ('install' === $operation->getJobType() ) {
} elseif ('install' === $jobType ) {
$package = $operation->getPackage();
}
if ($package & & $package->isDev()) {
@ -561,20 +562,24 @@ class Installer
$this->updateInstallReferences($package, $references[$package->getName()]);
}
}
if ('update' === $operation->getJobType()
& & $operation->getTargetPackage()->isDev()
& & $operation->getTargetPackage()->getVersion() === $operation->getInitialPackage()->getVersion()
& & (!$operation->getTargetPackage()->getSourceReference() || $operation->getTargetPackage()->getSourceReference() === $operation->getInitialPackage()->getSourceReference())
& & (!$operation->getTargetPackage()->getDistReference() || $operation->getTargetPackage()->getDistReference() === $operation->getInitialPackage()->getDistReference())
) {
$this->io->writeError(' - Skipping update of '. $operation->getTargetPackage()->getPrettyName().' to the same reference-locked version', true, IOInterface::DEBUG);
$this->io->writeError('', true, IOInterface::DEBUG);
if ('update' === $jobType) {
$targetPackage = $operation->getTargetPackage();
if ($targetPackage->isDev()) {
$initialPackage = $operation->getInitialPackage();
if ($targetPackage->getVersion() === $initialPackage->getVersion()
& & (!$targetPackage->getSourceReference() || $targetPackage->getSourceReference() === $initialPackage->getSourceReference())
& & (!$targetPackage->getDistReference() || $targetPackage->getDistReference() === $initialPackage->getDistReference())
) {
$this->io->writeError(' - Skipping update of ' . $targetPackage->getPrettyName() . ' to the same reference-locked version', true, IOInterface::DEBUG);
$this->io->writeError('', true, IOInterface::DEBUG);
continue;
continue;
}
}
}
}
$event = 'Composer\Installer\PackageEvents::PRE_PACKAGE_'.strtoupper($operation->getJobType() );
$event = 'Composer\Installer\PackageEvents::PRE_PACKAGE_'.strtoupper($jobType );
if (defined($event) & & $this->runScripts) {
$this->eventDispatcher->dispatchPackageEvent(constant($event), $this->devMode, $policy, $pool, $installedRepo, $request, $operations, $operation);
}
@ -589,7 +594,7 @@ class Installer
$this->installationManager->execute($localRepo, $operation);
// output reasons why the operation was ran, only for install/update operations
if ($this->verbose & & $this->io->isVeryVerbose() & & in_array($operation->getJobType() , array('install', 'update'))) {
if ($this->verbose & & $this->io->isVeryVerbose() & & in_array($jobType , array('install', 'update'))) {
$reason = $operation->getReason();
if ($reason instanceof Rule) {
switch ($reason->getReason()) {
@ -605,7 +610,7 @@ class Installer
}
}
$event = 'Composer\Installer\PackageEvents::POST_PACKAGE_'.strtoupper($operation->getJobType() );
$event = 'Composer\Installer\PackageEvents::POST_PACKAGE_'.strtoupper($jobType );
if (defined($event) & & $this->runScripts) {
$this->eventDispatcher->dispatchPackageEvent(constant($event), $this->devMode, $policy, $pool, $installedRepo, $request, $operations, $operation);
}