@@ -572,18 +572,25 @@ protected function getContainerBaseClass()
572
572
*/
573
573
protected function initializeContainer ()
574
574
{
575
+ $ asFiles = true ;
575
576
$ class = $ this ->getContainerClass ();
576
577
$ cacheDir = $ this ->warmupDir ?: $ this ->getCacheDir ();
577
578
$ cache = new ConfigCache ($ cacheDir .'/ ' .$ class .'.php ' , $ this ->debug );
578
579
$ oldContainer = null ;
579
580
if ($ fresh = $ cache ->isFresh ()) {
581
+ if (!$ asFiles ) {
582
+ require_once $ cache ->getPath ();
583
+ $ this ->container = new $ class ();
584
+ $ this ->container ->set ('kernel ' , $ this );
585
+
586
+ return ;
587
+ }
580
588
// Silence E_WARNING to ignore "include" failures - don't use "@" to prevent silencing fatal errors
581
589
$ errorLevel = error_reporting (\E_ALL ^ \E_WARNING );
582
590
$ fresh = $ oldContainer = false ;
583
591
try {
584
592
if (file_exists ($ cache ->getPath ()) && \is_object ($ this ->container = include $ cache ->getPath ())) {
585
593
$ this ->container ->set ('kernel ' , $ this );
586
- $ oldContainer = $ this ->container ;
587
594
$ fresh = true ;
588
595
}
589
596
} catch (\Throwable $ e ) {
@@ -634,6 +641,10 @@ protected function initializeContainer()
634
641
try {
635
642
$ container = null ;
636
643
$ container = $ this ->buildContainer ();
644
+ $ container ->getParameterBag ()->add ([
645
+ 'container.build_id ' => 'static ' ,
646
+ 'container.as_files ' => $ asFiles ,
647
+ ]);
637
648
$ container ->compile ();
638
649
} finally {
639
650
if ($ this ->debug && true !== $ previousHandler ) {
@@ -657,7 +668,12 @@ protected function initializeContainer()
657
668
$ oldContainer = \is_object ($ oldContainer ) ? new \ReflectionClass ($ oldContainer ) : false ;
658
669
659
670
$ this ->dumpContainer ($ cache , $ container , $ class , $ this ->getContainerBaseClass ());
660
- $ this ->container = require $ cache ->getPath ();
671
+ if ($ asFiles ) {
672
+ $ this ->container = require $ cache ->getPath ();
673
+ } else {
674
+ require $ cache ->getPath ();
675
+ $ this ->container = new $ class ();
676
+ }
661
677
$ this ->container ->set ('kernel ' , $ this );
662
678
663
679
if ($ oldContainer && \get_class ($ this ->container ) !== $ oldContainer ->name ) {
@@ -844,27 +860,33 @@ protected function dumpContainer(ConfigCache $cache, ContainerBuilder $container
844
860
$ dumper ->setProxyDumper (new ProxyDumper ());
845
861
}
846
862
863
+ $ asFiles = $ container ->hasParameter ('container.as_files ' ) ? $ container ->getParameter ('container.as_files ' ) : true ;
864
+
847
865
$ content = $ dumper ->dump ([
848
866
'class ' => $ class ,
849
867
'base_class ' => $ baseClass ,
850
868
'file ' => $ cache ->getPath (),
851
- 'as_files ' => true ,
869
+ 'as_files ' => $ asFiles ,
852
870
'debug ' => $ this ->debug ,
853
871
'inline_class_loader_parameter ' => \PHP_VERSION_ID >= 70000 && !$ this ->loadClassCache && !class_exists (ClassCollectionLoader::class, false ) ? 'container.dumper.inline_class_loader ' : null ,
854
872
'build_time ' => $ container ->hasParameter ('kernel.container_build_time ' ) ? $ container ->getParameter ('kernel.container_build_time ' ) : time (),
855
873
]);
856
874
857
- $ rootCode = array_pop ($ content );
858
- $ dir = \dirname ($ cache ->getPath ()).'/ ' ;
859
- $ fs = new Filesystem ();
875
+ if ($ asFiles ) {
876
+ $ rootCode = array_pop ($ content );
877
+ $ dir = \dirname ($ cache ->getPath ()).'/ ' ;
878
+ $ fs = new Filesystem ();
860
879
861
- foreach ($ content as $ file => $ code ) {
862
- $ fs ->dumpFile ($ dir .$ file , $ code );
863
- @chmod ($ dir .$ file , 0666 & ~umask ());
864
- }
865
- $ legacyFile = \dirname ($ dir .$ file ).'.legacy ' ;
866
- if (file_exists ($ legacyFile )) {
867
- @unlink ($ legacyFile );
880
+ foreach ($ content as $ file => $ code ) {
881
+<
7765
/span> $ fs ->dumpFile ($ dir .$ file , $ code );
882
+ @chmod ($ dir .$ file , 0666 & ~umask ());
883
+ }
884
+ $ legacyFile = \dirname ($ dir .$ file ).'.legacy ' ;
885
+ if (file_exists ($ legacyFile )) {
886
+ @unlink ($ legacyFile );
887
+ }
888
+ } else {
889
+ $ rootCode = $ content ;
868
890
}
869
891
870
892
$ cache ->write ($ rootCode , $ container ->getResources ());
0 commit comments