diff --git a/src/Composer/Repository/Vcs/VcsDriver.php b/src/Composer/Repository/Vcs/VcsDriver.php index 99c705c50..f8d9893b9 100644 --- a/src/Composer/Repository/Vcs/VcsDriver.php +++ b/src/Composer/Repository/Vcs/VcsDriver.php @@ -13,6 +13,7 @@ namespace Composer\Repository\Vcs; use Composer\Downloader\TransportException; +use Composer\Config; use Composer\IO\IOInterface; use Composer\Util\ProcessExecutor; use Composer\Util\RemoteFilesystem; @@ -26,6 +27,7 @@ abstract class VcsDriver implements VcsDriverInterface { protected $url; protected $io; + protected $config; protected $process; protected $remoteFilesystem; @@ -34,13 +36,15 @@ abstract class VcsDriver implements VcsDriverInterface * * @param string $url The URL * @param IOInterface $io The IO instance + * @param Config $config The composer configuration * @param ProcessExecutor $process Process instance, injectable for mocking * @param callable $remoteFilesystem Remote Filesystem, injectable for mocking */ - public function __construct($url, IOInterface $io, ProcessExecutor $process = null, $remoteFilesystem = null) + public function __construct($url, IOInterface $io, Config $config, ProcessExecutor $process = null, $remoteFilesystem = null) { $this->url = $url; $this->io = $io; + $this->config = $config; $this->process = $process ?: new ProcessExecutor; $this->remoteFilesystem = $remoteFilesystem ?: new RemoteFilesystem($io); } @@ -58,7 +62,6 @@ abstract class VcsDriver implements VcsDriverInterface return false; } - /** * Get the https or http protocol depending on SSL support. * diff --git a/src/Composer/Repository/VcsRepository.php b/src/Composer/Repository/VcsRepository.php index b70e7c09d..ecc435582 100644 --- a/src/Composer/Repository/VcsRepository.php +++ b/src/Composer/Repository/VcsRepository.php @@ -30,6 +30,7 @@ class VcsRepository extends ArrayRepository protected $packageName; protected $verbose; protected $io; + protected $config; protected $versionParser; protected $type; @@ -48,20 +49,21 @@ class VcsRepository extends ArrayRepository $this->io = $io; $this->type = isset($repoConfig['type']) ? $repoConfig['type'] : 'vcs'; $this->verbose = $io->isVerbose(); + $this->config = $config; } public function getDriver() { if (isset($this->drivers[$this->type])) { $class = $this->drivers[$this->type]; - $driver = new $class($this->url, $this->io); + $driver = new $class($this->url, $this->io, $this->config); $driver->initialize(); return $driver; } foreach ($this->drivers as $driver) { if ($driver::supports($this->io, $this->url)) { - $driver = new $driver($this->url, $this->io); + $driver = new $driver($this->url, $this->io, $this->config); $driver->initialize(); return $driver; } @@ -69,7 +71,7 @@ class VcsRepository extends ArrayRepository foreach ($this->drivers as $driver) { if ($driver::supports($this->io, $this->url, true)) { - $driver = new $driver($this->url, $this->io); + $driver = new $driver($this->url, $this->io, $this->config); $driver->initialize(); return $driver; }