@@ -23,7 +23,8 @@ class Compiler
2323 private const
2424 SERVICES = 'services ' ,
2525 PARAMETERS = 'parameters ' ,
26- DI = 'di ' ;
26+ DI = 'di ' ,
27+ CONFIGURATORS = 'configurators ' ;
2728
2829 /** @var CompilerExtension[] */
2930 private $ extensions = [];
@@ -53,6 +54,7 @@ public function __construct(?ContainerBuilder $builder = null)
5354 $ this ->dependencies = new DependencyChecker ;
5455 $ this ->addExtension (self ::SERVICES , new Extensions \ServicesExtension );
5556 $ this ->addExtension (self ::PARAMETERS , new Extensions \ParametersExtension ($ this ->configs ));
57+ $ this ->addExtension (self ::CONFIGURATORS , new Extensions \ConfiguratorsExtension );
5658 }
5759
5860
@@ -217,7 +219,10 @@ public function compile(): string
217219 /** @internal */
218220 public function processExtensions (): void
219221 {
220- $ first = $ this ->getExtensions (Extensions \ParametersExtension::class) + $ this ->getExtensions (Extensions \ExtensionsExtension::class);
222+ $ first = $ this ->getExtensions (Extensions \ConfiguratorsExtension::class)
223+ + $ this ->getExtensions (Extensions \ParametersExtension::class)
224+ + $ this ->getExtensions (Extensions \ExtensionsExtension::class);
225+
221226 foreach ($ first as $ name => $ extension ) {
222227 $ config = $ this ->processSchema ($ extension ->getConfigSchema (), $ this ->configs [$ name ] ?? [], $ name );
223228 $ extension ->setConfig ($ this ->config [$ name ] = $ config );
@@ -233,7 +238,11 @@ public function processExtensions(): void
233238
234239 $ extensions = array_diff_key ($ this ->extensions , $ first , [self ::SERVICES => 1 ]);
235240 foreach ($ extensions as $ name => $ extension ) {
236- $ config = $ this ->processSchema ($ extension ->getConfigSchema (), $ this ->configs [$ name ] ?? [], $ name );
241+ $ config = $ this ->processSchema (
242+ $ extension ->getConfigSchema (),
243+ array_merge ([(array ) $ extension ->getConfig ()], $ this ->configs [$ name ] ?? []),
244+ $ name
245+ );
237246 $ extension ->setConfig ($ this ->config [$ name ] = $ config );
238247 }
239248
0 commit comments