@@ -36,6 +36,8 @@ class OverblogGraphQLTypesExtension extends Extension
3636 ],
3737 ];
3838
39+ private $ treatedFiles = [];
40+
3941 const DEFAULT_TYPES_SUFFIX = '.types ' ;
4042
4143 public function load (array $ configs , ContainerBuilder $ container )
@@ -49,7 +51,8 @@ public function load(array $configs, ContainerBuilder $container)
4951 public function containerPrependExtensionConfig (array $ config , ContainerBuilder $ container )
5052 {
5153 $ typesMappings = $ this ->mappingConfig ($ config , $ container );
52-
54+ // reset treated files
55+ $ this ->treatedFiles = [];
5356 // treats mappings
5457 foreach ($ typesMappings as $ params ) {
5558 $ this ->prependExtensionConfigFromFiles ($ params ['type ' ], $ params ['files ' ], $ container );
@@ -63,12 +66,17 @@ public function containerPrependExtensionConfig(array $config, ContainerBuilder
6366 */
6467 private function prependExtensionConfigFromFiles ($ type , $ files , ContainerBuilder $ container )
6568 {
66- /** @var SplFileInfo $file */
6769 foreach ($ files as $ file ) {
70+ $ fileRealPath = $ file ->getRealPath ();
71+ if (isset ($ this ->treatedFiles [$ fileRealPath ])) {
72+ continue ;
73+ }
74+
6875 $ parserClass = sprintf ('Overblog \\GraphQLBundle \\Config \\Parser \\%sParser ' , ucfirst ($ type ));
6976
7077 $ typeConfig = call_user_func ($ parserClass .'::parse ' , $ file , $ container );
7178 $ container ->prependExtensionConfig ($ this ->getAlias (), $ typeConfig );
79+ $ this ->treatedFiles [$ file ->getRealPath ()] = true ;
7280 }
7381 }
7482
0 commit comments