diff --git a/src/Config/ConfigInitializer.php b/src/Config/ConfigInitializer.php index 2e3c9d6..470d02b 100644 --- a/src/Config/ConfigInitializer.php +++ b/src/Config/ConfigInitializer.php @@ -3,9 +3,9 @@ namespace Acquia\Drupal\RecommendedSettings\Config; use Acquia\Drupal\RecommendedSettings\Helpers\EnvironmentDetector; -use Consolidation\Config\Config; use Consolidation\Config\ConfigInterface; use Consolidation\Config\Loader\YamlConfigLoader; +use Drush\Config\DrushConfig; use Symfony\Component\Console\Input\InputInterface; /** @@ -18,7 +18,7 @@ class ConfigInitializer { /** * Config. */ - protected Config $config; + protected DrushConfig $config; /** * Loader. @@ -43,7 +43,7 @@ class ConfigInitializer { /** * ConfigInitializer constructor. * - * @param \Consolidation\Config\ConfigInterface|\Consolidation\Config\Config $config + * @param \Consolidation\Config\ConfigInterface|\Drush\Config\DrushConfig $config * The config object. * @param \Symfony\Component\Console\Input\InputInterface|null $input * An input object or null. @@ -147,7 +147,7 @@ protected function loadSiteConfig(): ConfigInitializer { * @param string[] $data * An array of data. */ - public function addConfig(array $data): Config { + public function addConfig(array $data): DrushConfig { $this->processor->add($data); return $this->config; } @@ -170,7 +170,7 @@ protected function determineEnvironment(): string { /** * Process config. */ - public function processConfig(): Config { + public function processConfig(): DrushConfig { $this->config->replace($this->processor->export()); return $this->config; } diff --git a/src/Config/DefaultConfig.php b/src/Config/DefaultConfig.php index 99e92d5..c7b795a 100644 --- a/src/Config/DefaultConfig.php +++ b/src/Config/DefaultConfig.php @@ -2,12 +2,12 @@ namespace Acquia\Drupal\RecommendedSettings\Config; -use Consolidation\Config\Config; +#use Consolidation\Config\Config; /** * The configuration for settings. */ -class DefaultConfig extends Config { +class DefaultConfig extends DefaultDrushConfig { /** * Config Constructor. diff --git a/src/Config/DefaultDrushConfig.php b/src/Config/DefaultDrushConfig.php index 1018b15..7b55ddc 100644 --- a/src/Config/DefaultDrushConfig.php +++ b/src/Config/DefaultDrushConfig.php @@ -15,17 +15,19 @@ class DefaultDrushConfig extends DrushConfig { * @param \Drush\Config\DrushConfig $config * The drush config object. */ - public function __construct(DrushConfig $config) { + public function __construct(?DrushConfig $config = NULL) { parent::__construct(); - $this->set('repo.root', $config->get("runtime.project")); - $this->set('docroot', $config->get("options.root")); - $this->set('composer.bin', $config->get("drush.vendor-dir") . '/bin'); - if ($config->get("options.ansi") !== NULL) { - $this->set('drush.ansi', $config->get("options.ansi")); + if ($config) { + $this->set('repo.root', $config->get("runtime.project")); + $this->set('docroot', $config->get("options.root")); + $this->set('composer.bin', $config->get("drush.vendor-dir") . '/bin'); + if ($config->get("options.ansi") !== NULL) { + $this->set('drush.ansi', $config->get("options.ansi")); + } + $this->set('drush.bin', $config->get("runtime.drush-script")); + $this->setDefault('drush.alias', "self"); + $this->combine($config->export()); } - $this->set('drush.bin', $config->get("runtime.drush-script")); - $this->setDefault('drush.alias', "self"); - $this->combine($config->export()); } /** @@ -36,4 +38,12 @@ public function combine($data) { return $this; } + /** + * {@inheritdoc} + */ + public function replace($data) { + $this->getContext(self::PROCESS_CONTEXT)->replace($data); + return $this; + } + } diff --git a/tests/src/Functional/Config/ConfigInitializerTest.php b/tests/src/Functional/Config/ConfigInitializerTest.php index 1c1bff5..e34cc25 100644 --- a/tests/src/Functional/Config/ConfigInitializerTest.php +++ b/tests/src/Functional/Config/ConfigInitializerTest.php @@ -3,8 +3,8 @@ namespace Acquia\Drupal\RecommendedSettings\Tests\Functional\Config; use Acquia\Drupal\RecommendedSettings\Config\ConfigInitializer; +use Acquia\Drupal\RecommendedSettings\Config\DefaultDrushConfig; use Acquia\Drupal\RecommendedSettings\Tests\FunctionalTestBase; -use Consolidation\Config\Config; use Symfony\Component\Console\Input\InputDefinition; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Input\StringInput; @@ -22,7 +22,7 @@ class ConfigInitializerTest extends FunctionalTestBase { * @throws \ReflectionException */ public function testSetSite(): void { - $config = new Config(); + $config = new DefaultDrushConfig(); $config_initializer = new ConfigInitializer($config); $method = $this->getReflectionMethod($config_initializer::class, "setSite"); @@ -46,7 +46,7 @@ public function testSetSite(): void { * @throws \ReflectionException */ public function testDetermineSite(): void { - $config = new Config(); + $config = new DefaultDrushConfig(); $config_initializer = new ConfigInitializer($config); $method = $this->getReflectionMethod($config_initializer::class, "determineSite"); $result = $method->invoke($config_initializer); @@ -74,7 +74,7 @@ public function testDetermineSite(): void { */ public function testDetermineEnvironment(): void { putenv("CI="); - $config = new Config(); + $config = new DefaultDrushConfig(); $config_initializer = new ConfigInitializer($config); $method = $this->getReflectionMethod($config_initializer::class, "determineEnvironment"); $result = $method->invoke($config_initializer); @@ -85,7 +85,7 @@ public function testDetermineEnvironment(): void { $this->assertSame("ci", $result); putenv("CI="); - $config = new Config(); + $config = new DefaultDrushConfig(); $config->set("environment", "dev"); $config_initializer = new ConfigInitializer($config); $method = $this->getReflectionMethod($config_initializer::class, "determineEnvironment"); @@ -98,7 +98,7 @@ public function testDetermineEnvironment(): void { */ public function testInitialize(): void { putenv("CI="); - $config = new Config(); + $config = new DefaultDrushConfig(); $config_initializer = new ConfigInitializer($config); $config_initializer->initialize(); $this->assertEquals($config_initializer->processConfig()->export(), [ @@ -122,7 +122,7 @@ public function testInitialize(): void { ]); putenv("CI=true"); - $config = new Config(); + $config = new DefaultDrushConfig(); $config_initializer = new ConfigInitializer($config); $config_initializer->initialize(); @@ -141,7 +141,7 @@ public function testInitialize(): void { */ public function testLoadAllConfig(): void { putenv("CI="); - $config = new Config(); + $config = new DefaultDrushConfig(); $config_initializer = new ConfigInitializer($config); $config = $config_initializer->initialize()->loadAllConfig()->processConfig(); $this->assertEquals($config->export(), [ @@ -161,7 +161,7 @@ public function testLoadAllConfig(): void { ], ]); - $config = new Config(); + $config = new DefaultDrushConfig(); $project_root = $this->getProjectRoot(); $drupal_root = $this->getDrupalRoot(); $config->set("repo.root", $project_root); @@ -191,7 +191,7 @@ public function testLoadAllConfig(): void { ], ]); - $config = new Config(); + $config = new DefaultDrushConfig(); $config->set("repo.root", $project_root); $config->set("docroot", $this->getDrupalRoot()); $config_initializer = new ConfigInitializer($config);