From 33af9eea9550a8a65ece651e5c46e8a5104a8139 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Sun, 28 Apr 2013 13:29:15 +0200 Subject: [PATCH] Always dump packages, even if only an alias is added, fixes #1809 --- src/Composer/Autoload/AutoloadGenerator.php | 4 ++++ src/Composer/Repository/FilesystemRepository.php | 14 +++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/Composer/Autoload/AutoloadGenerator.php b/src/Composer/Autoload/AutoloadGenerator.php index 427e3ead8..3beb6d208 100644 --- a/src/Composer/Autoload/AutoloadGenerator.php +++ b/src/Composer/Autoload/AutoloadGenerator.php @@ -197,6 +197,10 @@ EOF; $packageMap = array(array($mainPackage, '')); foreach ($packages as $package) { + // unfold aliased packages + while ($package instanceof AliasPackage && !in_array($package->getAliasOf(), $packages, true)) { + $package = $package->getAliasOf(); + } if ($package instanceof AliasPackage) { continue; } diff --git a/src/Composer/Repository/FilesystemRepository.php b/src/Composer/Repository/FilesystemRepository.php index 1c205cf54..5e1b935e3 100644 --- a/src/Composer/Repository/FilesystemRepository.php +++ b/src/Composer/Repository/FilesystemRepository.php @@ -76,15 +76,19 @@ class FilesystemRepository extends ArrayRepository implements WritableRepository */ public function write() { - $packages = array(); + $data = array(); $dumper = new ArrayDumper(); - foreach ($this->getPackages() as $package) { + $packages = $this->getPackages(); + foreach ($packages as $package) { + // unfold aliased packages + while ($package instanceof AliasPackage && !in_array($package->getAliasOf(), $packages, true)) { + $package = $package->getAliasOf(); + } if (!$package instanceof AliasPackage) { - $data = $dumper->dump($package); - $packages[] = $data; + $data[] = $dumper->dump($package); } } - $this->file->write($packages); + $this->file->write($data); } }