Fix alias handling with --dev installs, fixes #579
parent
7b87d2b573
commit
f63df842b3
|
@ -136,13 +136,6 @@ class Installer
|
||||||
|
|
||||||
$aliases = $this->aliasPackages();
|
$aliases = $this->aliasPackages();
|
||||||
|
|
||||||
// creating repository pool
|
|
||||||
$pool = new Pool;
|
|
||||||
$pool->addRepository($installedRepo);
|
|
||||||
foreach ($this->repositoryManager->getRepositories() as $repository) {
|
|
||||||
$pool->addRepository($repository);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$this->dryRun) {
|
if (!$this->dryRun) {
|
||||||
// dispatch pre event
|
// dispatch pre event
|
||||||
$eventName = $this->update ? ScriptEvents::PRE_UPDATE_CMD : ScriptEvents::PRE_INSTALL_CMD;
|
$eventName = $this->update ? ScriptEvents::PRE_UPDATE_CMD : ScriptEvents::PRE_INSTALL_CMD;
|
||||||
|
@ -150,11 +143,11 @@ class Installer
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->suggestedPackages = array();
|
$this->suggestedPackages = array();
|
||||||
if (!$this->doInstall($this->repositoryManager->getLocalRepository(), $installedRepo, $pool, $aliases)) {
|
if (!$this->doInstall($this->repositoryManager->getLocalRepository(), $installedRepo, $aliases)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if ($this->devMode) {
|
if ($this->devMode) {
|
||||||
if (!$this->doInstall($this->repositoryManager->getLocalDevRepository(), $installedRepo, $pool, $aliases, true)) {
|
if (!$this->doInstall($this->repositoryManager->getLocalDevRepository(), $installedRepo, $aliases, true)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -191,8 +184,15 @@ class Installer
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function doInstall($localRepo, $installedRepo, $pool, $aliases, $devMode = false)
|
protected function doInstall($localRepo, $installedRepo, $aliases, $devMode = false)
|
||||||
{
|
{
|
||||||
|
// creating repository pool
|
||||||
|
$pool = new Pool;
|
||||||
|
$pool->addRepository($installedRepo);
|
||||||
|
foreach ($this->repositoryManager->getRepositories() as $repository) {
|
||||||
|
$pool->addRepository($repository);
|
||||||
|
}
|
||||||
|
|
||||||
// creating requirements request
|
// creating requirements request
|
||||||
$installFromLock = false;
|
$installFromLock = false;
|
||||||
$request = new Request($pool);
|
$request = new Request($pool);
|
||||||
|
@ -358,6 +358,11 @@ class Installer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// reload local repository for the dev pass to work ok with aliases since it was anti-aliased above
|
||||||
|
if (!$devMode) {
|
||||||
|
$localRepo->reload();
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ use Composer\Package\Dumper\ArrayDumper;
|
||||||
* Filesystem repository.
|
* Filesystem repository.
|
||||||
*
|
*
|
||||||
* @author Konstantin Kudryashov <ever.zet@gmail.com>
|
* @author Konstantin Kudryashov <ever.zet@gmail.com>
|
||||||
|
* @author Jordi Boggiano <j.boggiano@seld.be>
|
||||||
*/
|
*/
|
||||||
class FilesystemRepository extends ArrayRepository implements WritableRepositoryInterface
|
class FilesystemRepository extends ArrayRepository implements WritableRepositoryInterface
|
||||||
{
|
{
|
||||||
|
@ -71,6 +72,12 @@ class FilesystemRepository extends ArrayRepository implements WritableRepository
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function reload()
|
||||||
|
{
|
||||||
|
$this->packages = null;
|
||||||
|
$this->initialize();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Writes writable repository.
|
* Writes writable repository.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -39,4 +39,9 @@ interface WritableRepositoryInterface extends RepositoryInterface
|
||||||
* @param PackageInterface $package package instance
|
* @param PackageInterface $package package instance
|
||||||
*/
|
*/
|
||||||
function removePackage(PackageInterface $package);
|
function removePackage(PackageInterface $package);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Forces a reload of all packages
|
||||||
|
*/
|
||||||
|
function reload();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue