@@ -36,6 +36,8 @@ class OverblogGraphQLTypesExtension extends Extension
36
36
],
37
37
];
38
38
39
+ private $ treatedFiles = [];
40
+
39
41
const DEFAULT_TYPES_SUFFIX = '.types ' ;
40
42
41
43
public function load (array $ configs , ContainerBuilder $ container )
@@ -49,7 +51,8 @@ public function load(array $configs, ContainerBuilder $container)
49
51
public function containerPrependExtensionConfig (array $ config , ContainerBuilder $ container )
50
52
{
51
53
$ typesMappings = $ this ->mappingConfig ($ config , $ container );
52
-
54
+ // reset treated files
55
+ $ this ->treatedFiles = [];
53
56
// treats mappings
54
57
foreach ($ typesMappings as $ params ) {
55
58
$ this ->prependExtensionConfigFromFiles ($ params ['type ' ], $ params ['files ' ], $ container );
@@ -63,12 +66,17 @@ public function containerPrependExtensionConfig(array $config, ContainerBuilder
63
66
*/
64
67
private function prependExtensionConfigFromFiles ($ type , $ files , ContainerBuilder $ container )
65
68
{
66
- /** @var SplFileInfo $file */
67
69
foreach ($ files as $ file ) {
70
+ $ fileRealPath = $ file ->getRealPath ();
71
+ if (isset ($ this ->treatedFiles [$ fileRealPath ])) {
72
+ continue ;
73
+ }
74
+
68
75
$ parserClass = sprintf ('Overblog \\GraphQLBundle \\Config \\Parser \\%sParser ' , ucfirst ($ type ));
69
76
70
77
$ typeConfig = call_user_func ($ parserClass .'::parse ' , $ file , $ container );
71
78
$ container ->prependExtensionConfig ($ this ->getAlias (), $ typeConfig );
79
+ $ this ->treatedFiles [$ file ->getRealPath ()] = true ;
72
80
}
73
81
}
74
82
0 commit comments