@@ -270,7 +270,7 @@ class %s extends {$options['class']}
270
270
271
271
EOF ;
272
272
$ files = [];
273
-
273
+ $ preloadedFiles = [];
274
274
$ ids = $ this ->container ->getRemovedIds ();
275
275
foreach ($ this ->container ->getDefinitions () as $ id => $ definition ) {
276
276
if (!$ definition ->isPublic ()) {
@@ -287,11 +287,16 @@ class %s extends {$options['class']}
287
287
}
288
288
289
289
if (!$ this ->inlineFactories ) {
290
- foreach ($ this ->generateServiceFiles ($ services ) as $ file => $ c ) {
290
+ foreach ($ this ->generateServiceFiles ($ services ) as $ file => [ $ c , $ preload ] ) {
291
291
$ files [$ file ] = sprintf ($ fileTemplate , substr ($ file , 0 , -4 ), $ c );
292
+
293
+ if ($ preload ) {
294
+ $ preloadedFiles [$ file ] = $ file ;
295
+ }
292
296
}
293
297
foreach ($ proxyClasses as $ file => $ c ) {
294
298
$ files [$ file ] = "<?php \n" .$ c ;
299
+ $ preloadedFiles [$ file ] = $ file ;
295
300
}
296
301
}
297
302
@@ -304,11 +309,16 @@ class %s extends {$options['class']}
304
309
}
305
310
306
311
$ files [$ options ['class ' ].'.php ' ] = $ code ;
312
+ $ preloadedFiles [$ options ['class ' ].'.php ' ] = $ options ['class ' ].'.php ' ;
307
313
$ hash = ucfirst (strtr (ContainerBuilder::hash ($ files ), '._ ' , 'xx ' ));
308
314
$ code = [];
309
315
310
316
foreach ($ files as $ file => $ c ) {
311
317
$ code ["Container {$ hash }/ {$ file }" ] = substr_replace ($ c , "<?php \n\nnamespace Container {$ hash }; \n" , 0 , 6 );
318
+
319
+ if (isset ($ preloadedFiles [$ file ])) {
320
+ $ preloadedFiles [$ file ] = "Container {$ hash }/ {$ file }" ;
321
+ }
312
322
}
313
323
$ namespaceLine = $ this ->namespace ? "\nnamespace {$ this ->namespace }; \n" : '' ;
314
324
$ time = $ options ['build_time ' ];
@@ -318,8 +328,8 @@ class %s extends {$options['class']}
318
328
if ($ this ->preload && null !== $ autoloadFile = $ this ->getAutoloadFile ()) {
319
329
$ autoloadFile = substr ($ this ->export ($ autoloadFile ), 2 , -1 );
320
330
321
- $ factoryFiles = array_reverse (array_keys ( $ code ) );
322
- $ factoryFiles = implode ("'; \nrequire __DIR__.'/ " , $ factoryFiles );
331
+ $ preloadedFiles = array_reverse ($ preloadedFiles );
332
+ $ preloadedFiles = implode ("'; \nrequire __DIR__.'/ " , $ preloadedFiles );
323
333
324
334
$ code [$ options ['class ' ].'.preload.php ' ] = <<<EOF
325
335
<?php
@@ -330,7 +340,7 @@ class %s extends {$options['class']}
330
340
use Symfony\Component\DependencyInjection\Dumper\Preloader;
331
341
332
342
require $ autoloadFile;
333
- require __DIR__.'/ $ factoryFiles ';
343
+ require __DIR__.'/ $ preloadedFiles ';
334
344
335
345
\$classes = [];
336
346
@@ -1036,7 +1046,7 @@ private function generateServiceFiles(array $services): iterable
1036
1046
ksort ($ definitions );
1037
1047
foreach ($ definitions as $ id => $ definition ) {
1038
1048
if ((list ($ file , $ code ) = $ services [$ id ]) && null !== $ file && ($ definition ->isPublic () || !$ this ->isTrivialInstance ($ definition ) || isset ($ this ->locatedIds [$ id ]))) {
1039
- yield $ file => $ code ;
1049
+ yield $ file => [ $ code, ! $ definition -> hasTag ( $ this -> preloadTags [ 1 ]) && ! $ definition -> isDeprecated () && ! $ definition -> hasErrors ()] ;
1040
1050
}
1041
1051
}
1042
1052
}
0 commit comments