44
55namespace Yokai \Batch \Bridge \Symfony \Framework \DependencyInjection ;
66
7+ use Composer \InstalledVersions ;
78use Symfony \Component \Config \FileLocator ;
89use Symfony \Component \Config \Loader as ConfigLoader ;
910use Symfony \Component \Console \Application ;
@@ -34,15 +35,13 @@ public function load(array $configs, ContainerBuilder $container): void
3435
3536 $ loader = $ this ->getLoader ($ container );
3637 $ loader ->load ('global/ ' );
37- $ bundles = $ container ->getParameter ('kernel.bundles ' );
3838
3939 $ bridges = [
40- 'doctrine/orm/ ' => isset ($ bundles ['DoctrineBundle ' ]),
41- 'doctrine/mongodb/ ' => isset ($ bundles ['DoctrineMongoDBBundle ' ]),
42- 'symfony/console/ ' => class_exists (Application::class),
43- 'symfony/messenger/ ' => class_exists (MessageBusInterface::class),
44- 'symfony/serializer/ ' => interface_exists (SerializerInterface::class),
45- 'symfony/validator/ ' => interface_exists (ValidatorInterface::class),
40+ 'doctrine/orm/ ' => $ this ->installed ('doctrine-orm ' ),
41+ 'symfony/console/ ' => $ this ->installed ('symfony-console ' ),
42+ 'symfony/messenger/ ' => $ this ->installed ('symfony-messenger ' ),
43+ 'symfony/serializer/ ' => $ this ->installed ('symfony-serializer ' ),
44+ 'symfony/validator/ ' => $ this ->installed ('symfony-validator ' ),
4645 ];
4746
4847 foreach (array_keys (array_filter ($ bridges )) as $ resource ) {
@@ -60,6 +59,15 @@ public function load(array $configs, ContainerBuilder $container): void
6059 $ container ->setAlias (JobLauncherInterface::class, $ launcher );
6160 }
6261
62+ private function installed (string $ package ): bool
63+ {
64+ if (InstalledVersions::isInstalled ('yokai/batch-src ' )) {
65+ return true ;
66+ }
67+
68+ return InstalledVersions::isInstalled ('yokai/batch- ' . $ package );
69+ }
70+
6371 private function getLoader (ContainerBuilder $ container ): ConfigLoader \LoaderInterface
6472 {
6573 $ locator = new FileLocator (__DIR__ . '/../Resources/services ' );
@@ -89,7 +97,7 @@ private function configureStorage(ContainerBuilder $container, array $config): v
8997 ;
9098
9199 $ defaultStorage = 'yokai_batch.storage.dbal ' ;
92- } elseif ( isset ( $ config [ ' filesystem ' ])) {
100+ } else {
93101 $ container
94102 ->register ('yokai_batch.storage.filesystem ' , FilesystemJobExecutionStorage::class)
95103 ->setArguments (
@@ -101,8 +109,6 @@ private function configureStorage(ContainerBuilder $container, array $config): v
101109 ;
102110
103111 $ defaultStorage = 'yokai_batch.storage.filesystem ' ;
104- } else {
105- throw new \LogicException ();//todo
106112 }
107113
108114 try {
0 commit comments