File tree Expand file tree Collapse file tree 3 files changed +44
-1
lines changed
Bundle/FrameworkBundle/Tests/Kernel
Component/Console/DependencyInjection Expand file tree Collapse file tree 3 files changed +44
-1
lines changed 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 \Kernel ;
13+
14+ use Symfony \Component \Console \Attribute \AsCommand ;
15+ use Symfony \Component \Console \Output \OutputInterface ;
16+
17+ #[AsCommand(name: 'kernel:hello ' )]
18+ final class KernelCommand extends MinimalKernel
19+ {
20+ public function __invoke (OutputInterface $ output ): int
21+ {
22+ $ output ->write ('Hello Kernel! ' );
23+
24+ return 0 ;
25+ }
26+ }
Original file line number Diff line number Diff line change 1313
1414use PHPUnit \Framework \TestCase ;
1515use Psr \Log \NullLogger ;
16+ use Symfony \Bundle \FrameworkBundle \Console \Application ;
1617use Symfony \Bundle \FrameworkBundle \Kernel \MicroKernelTrait ;
18+ use Symfony \Component \Console \Input \ArrayInput ;
19+ use Symfony \Component \Console \Output \BufferedOutput ;
1720use Symfony \Component \DependencyInjection \ContainerBuilder ;
1821use Symfony \Component \DependencyInjection \Extension \ExtensionInterface ;
1922use Symfony \Component \DependencyInjection \Loader \ClosureLoader ;
@@ -152,6 +155,19 @@ public function testSimpleKernel()
152155 $ this ->assertSame ('Hello World! ' , $ response ->getContent ());
153156 }
154157
158+ public function testKernelCommand ()
159+ {
160+ $ kernel = $ this ->kernel = new KernelCommand ('kernel_command ' );
161+ $ application = new Application ($ kernel );
162+
163+ $ input = new ArrayInput (['command ' => 'kernel:hello ' ]);
164+ $ output = new BufferedOutput ();
165+
166+ $ this ->assertTrue ($ application ->has ('kernel:hello ' ));
167+ $ this ->assertSame (0 , $ application ->doRun ($ input , $ output ));
168+ $ this ->assertSame ('Hello Kernel! ' , $ output ->fetch ());
169+ }
170+
155171 public function testDefaultKernel ()
156172 {
157173 $ kernel = $ this ->kernel = new DefaultKernel ('test ' , false );
Original file line number Diff line number Diff line change @@ -39,7 +39,6 @@ public function process(ContainerBuilder $container): void
3939
4040 foreach ($ commandServices as $ id => $ tags ) {
4141 $ definition = $ container ->getDefinition ($ id );
42- $ definition ->addTag ('container.no_preload ' );
4342 $ class = $ container ->getParameterBag ()->resolveValue ($ definition ->getClass ());
4443
4544 if (!$ r = $ container ->getReflectionClass ($ class )) {
@@ -58,6 +57,8 @@ public function process(ContainerBuilder $container): void
5857 $ invokableRef = null ;
5958 }
6059
60+ $ definition ->addTag ('container.no_preload ' );
61+
6162 /** @var AsCommand|null $attribute */
6263 $ attribute = ($ r ->getAttributes (AsCommand::class)[0 ] ?? null )?->newInstance();
6364
You can’t perform that action at this time.
0 commit comments