Explorar el Código

Repository options must be replicated on package when dist file is under
repository base dir

Luís Otávio Cobucci Oblonczyk hace 11 años
padre
commit
0b77a59af6
Se han modificado 1 ficheros con 21 adiciones y 0 borrados
  1. 21 0
      src/Composer/Repository/ComposerRepository.php

+ 21 - 0
src/Composer/Repository/ComposerRepository.php

@@ -13,6 +13,7 @@
 namespace Composer\Repository;
 
 use Composer\Package\Loader\ArrayLoader;
+use Composer\Package\Package;
 use Composer\Package\PackageInterface;
 use Composer\Package\AliasPackage;
 use Composer\Package\Version\VersionParser;
@@ -204,10 +205,19 @@ class ComposerRepository extends ArrayRepository implements StreamableRepository
             $package = $package->getAliasOf();
         }
         $package->setRepository($this);
+        $this->configurePackageOptions($package);
 
         return $package;
     }
 
+    protected function configurePackageOptions(PackageInterface $package)
+    {
+        if ($package instanceof Package
+            && strpos($package->getDistUrl(), $this->baseUrl) === 0) {
+            $package->setOptions($this->options);
+        }
+    }
+
     /**
      * {@inheritDoc}
      */
@@ -376,6 +386,17 @@ class ComposerRepository extends ArrayRepository implements StreamableRepository
         }
     }
 
+    /**
+     * Adds a new package to the repository
+     *
+     * @param PackageInterface $package
+     */
+    public function addPackage(PackageInterface $package)
+    {
+        parent::addPackage($package);
+        $this->configurePackageOptions($package);
+    }
+
     protected function loadRootServerFile()
     {
         if (null !== $this->rootData) {