File tree Expand file tree Collapse file tree 5 files changed +49
-1
lines changed
Bundle/TestBundle/TestServiceContainer Expand file tree Collapse file tree 5 files changed +49
-1
lines changed Original file line number Diff line number Diff line change @@ -160,6 +160,11 @@ protected static function ensureKernelShutdown()
160160 static ::$ kernel ->shutdown ();
161161 static ::$ booted = false ;
162162
163+ if ($ container ->has ('services_resetter ' )) {
164+ // Instantiate the service because Container::reset() only resets services that have been used
165+ $ container ->get ('services_resetter ' );
166+ }
167+
163168 if ($ container instanceof ResetInterface) {
164169 $ container ->reset ();
165170 }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ /*
4+ * This file is part of the Symfony package.
5+ *
6+ * (c) Fabien Potencier <fabien@symfony.com>
7+ *
8+ * For the full copyright and license information, please view the LICENSE
9+ * file that was distributed with this source code.
10+ */
11+
12+ namespace Symfony \Bundle \FrameworkBundle \Tests \Functional \Bundle \TestBundle \TestServiceContainer ;
13+
14+ class ResettableService
15+ {
16+ private $ count = 0 ;
17+
18+ public function myCustomName (): void
19+ {
20+ ++$ this ->count ;
21+ }
22+
23+ public function getCount (): int
24+ {
25+ return $ this ->count ;
26+ }
27+ }
Original file line number Diff line number Diff line change 1515use Symfony \Bundle \FrameworkBundle \Tests \Functional \Bundle \TestBundle \TestServiceContainer \NonPublicService ;
1616use Symfony \Bundle \FrameworkBundle \Tests \Functional \Bundle \TestBundle \TestServiceContainer \PrivateService ;
1717use Symfony \Bundle \FrameworkBundle \Tests \Functional \Bundle \TestBundle \TestServiceContainer \PublicService ;
18+ use Symfony \Bundle \FrameworkBundle \Tests \Functional \Bundle \TestBundle \TestServiceContainer \ResettableService ;
1819use Symfony \Bundle \FrameworkBundle \Tests \Functional \Bundle \TestBundle \TestServiceContainer \UnusedPrivateService ;
1920use Symfony \Component \DependencyInjection \ContainerInterface ;
2021
@@ -41,4 +42,14 @@ public function testThatPrivateServicesAreAvailableIfTestConfigIsEnabled()
4142 $ this ->assertTrue ($ container ->has ('private_service ' ));
4243 $ this ->assertFalse ($ container ->has (UnusedPrivateService::class));
4344 }
45+
46+ public function testServicesAreResetOnEnsureKernelShutdown ()
47+ {
48+ static ::bootKernel (['test_case ' => 'TestServiceContainer ' ]);
49+
50+ $ resettableService = static ::getContainer ()->get (ResettableService::class);
51+
52+ self ::ensureKernelShutdown ();
53+ self ::assertSame (1 , $ resettableService ->getCount ());
54+ }
4455}
Original file line number Diff line number Diff line change @@ -13,3 +13,8 @@ services:
1313 arguments :
1414 - ' @Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\TestServiceContainer\NonPublicService'
1515 - ' @Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\TestServiceContainer\PrivateService'
16+
17+ Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\TestServiceContainer\ResettableService :
18+ public : true
19+ tags :
20+ - kernel.reset : { method: 'myCustomName' }
Original file line number Diff line number Diff line change 2020 "ext-xml" : " *" ,
2121 "symfony/cache" : " ^5.2|^6.0" ,
2222 "symfony/config" : " ^5.3|^6.0" ,
23- "symfony/dependency-injection" : " ^5.4.5 |^6.0.5" ,
23+ "symfony/dependency-injection" : " ^5.4.44 |^6.0.5" ,
2424 "symfony/deprecation-contracts" : " ^2.1|^3" ,
2525 "symfony/event-dispatcher" : " ^5.1|^6.0" ,
2626 "symfony/error-handler" : " ^4.4.1|^5.0.1|^6.0" ,
You can’t perform that action at this time.
0 commit comments