55
66use Bref \Symfony \Messenger \Service \BusDriver ;
77use EonX \EasyServerless \Bundle \EasyServerlessBundle ;
8+ use Psr \Log \NullLogger ;
89use Symfony \Component \Config \Loader \LoaderInterface ;
10+ use Symfony \Component \DependencyInjection \Argument \IteratorArgument ;
911use Symfony \Component \DependencyInjection \Compiler \CompilerPassInterface ;
1012use Symfony \Component \DependencyInjection \ContainerBuilder ;
1113use Symfony \Component \DependencyInjection \Definition ;
14+ use Symfony \Component \DependencyInjection \ServiceLocator ;
15+ use Symfony \Component \HttpKernel \DependencyInjection \ServicesResetter ;
1216use Symfony \Component \HttpKernel \Kernel ;
1317use Symfony \Component \HttpKernel \KernelInterface ;
18+ use Symfony \Component \Messenger \MessageBus ;
19+ use Symfony \Component \Messenger \MessageBusInterface ;
20+ use Symfony \Component \Messenger \Transport \Serialization \PhpSerializer ;
21+ use Symfony \Component \Messenger \Transport \Serialization \SerializerInterface ;
1422
1523final class KernelStub extends Kernel implements CompilerPassInterface
1624{
@@ -19,15 +27,23 @@ final class KernelStub extends Kernel implements CompilerPassInterface
1927 */
2028 private readonly array $ configs ;
2129
30+ /**
31+ * @var \Symfony\Component\HttpKernel\Bundle\BundleInterface[]
32+ */
33+ private readonly array $ extraBundles ;
34+
2235 /**
2336 * @param string[]|null $configs
37+ * @param \Symfony\Component\HttpKernel\Bundle\BundleInterface[]|null $bundles
2438 */
2539 public function __construct (
2640 string $ environment ,
2741 bool $ debug ,
2842 ?array $ configs = null ,
43+ ?array $ bundles = null ,
2944 ) {
3045 $ this ->configs = $ configs ?? [];
46+ $ this ->extraBundles = $ bundles ?? [];
3147
3248 parent ::__construct ($ environment , $ debug );
3349 }
@@ -40,6 +56,23 @@ public function process(ContainerBuilder $container): void
4056 );
4157 $ container ->setAlias (KernelInterface::class, 'kernel ' );
4258 $ container ->setDefinition (BusDriver::class, new Definition (BusDriver::class));
59+ $ container ->setDefinition (NullLogger::class, new Definition (NullLogger::class));
60+ $ container ->setAlias ('logger ' , NullLogger::class);
61+ $ container ->setDefinition (
62+ MessageBus::class,
63+ (new Definition (MessageBus::class))->setArguments ([[]])
64+ );
65+ $ container ->setAlias (MessageBusInterface::class, MessageBus::class);
66+ $ container ->setDefinition (PhpSerializer::class, new Definition (PhpSerializer::class));
67+ $ container ->setAlias (SerializerInterface::class, PhpSerializer::class);
68+ $ container ->setDefinition (
69+ 'messenger.retry_strategy_locator ' ,
70+ (new Definition (ServiceLocator::class))->setArguments ([[]])
71+ );
72+ $ container ->setDefinition (
73+ 'services_resetter ' ,
74+ (new Definition (ServicesResetter::class))->setArguments ([new IteratorArgument ([]), []])
75+ );
4376
4477 foreach ($ container ->getDefinitions () as $ definition ) {
4578 $ definition ->setPublic (true );
@@ -56,6 +89,10 @@ public function process(ContainerBuilder $container): void
5689 public function registerBundles (): iterable
5790 {
5891 yield new EasyServerlessBundle ();
92+
93+ foreach ($ this ->extraBundles as $ bundle ) {
94+ yield $ bundle ;
95+ }
5996 }
6097
6198 public function registerContainerConfiguration (LoaderInterface $ loader ): void
0 commit comments