Skip to content

Commit 80e9c91

Browse files
authored
Merge pull request #198 from context-hub/hotfix/import-variables
feat: Add VariablesConfigMerger to handle variable merging in configuration
2 parents 1f77387 + af2a1df commit 80e9c91

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

src/Application/Bootloader/ConfigLoaderBootloader.php

+6-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Butschster\ContextGenerator\Config\Import\Merger\ConfigMergerInterface;
99
use Butschster\ContextGenerator\Config\Import\Merger\ConfigMergerProviderInterface;
1010
use Butschster\ContextGenerator\Config\Import\Merger\ConfigMergerRegistry;
11+
use Butschster\ContextGenerator\Config\Import\Merger\VariablesConfigMerger;
1112
use Butschster\ContextGenerator\Config\Loader\ConfigLoaderFactory;
1213
use Butschster\ContextGenerator\Config\Loader\ConfigLoaderFactoryInterface;
1314
use Butschster\ContextGenerator\Config\Loader\ConfigLoaderInterface;
@@ -119,8 +120,11 @@ interface: ConfigLoaderInterface::class,
119120
];
120121
}
121122

122-
public function init(DocumentConfigMerger $documentConfigMerger): void
123-
{
123+
public function init(
124+
DocumentConfigMerger $documentConfigMerger,
125+
VariablesConfigMerger $variablesConfigMerger,
126+
): void {
124127
$this->registerMerger($documentConfigMerger);
128+
$this->registerMerger($variablesConfigMerger);
125129
}
126130
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Butschster\ContextGenerator\Config\Import\Merger;
6+
7+
use Butschster\ContextGenerator\Application\Logger\LoggerPrefix;
8+
use Butschster\ContextGenerator\Config\Import\Source\ImportedConfig;
9+
10+
#[LoggerPrefix(prefix: 'variables-merger')]
11+
final readonly class VariablesConfigMerger extends AbstractConfigMerger
12+
{
13+
protected function performMerge(array $mainSection, array $importedSection, ImportedConfig $importedConfig): array
14+
{
15+
// Merge the variables from the imported config into the main config
16+
return [...$importedSection, ...$mainSection];
17+
}
18+
19+
public function getConfigKey(): string
20+
{
21+
return 'variables';
22+
}
23+
}

0 commit comments

Comments
 (0)