|
16 | 16 | use Doctrine\Common\EventSubscriber; |
17 | 17 | use Doctrine\ODM\MongoDB\DocumentManager; |
18 | 18 | use InvalidArgumentException; |
| 19 | +use Jean85\PrettyVersions; |
19 | 20 | use Symfony\Bridge\Doctrine\DependencyInjection\AbstractDoctrineExtension; |
20 | 21 | use Symfony\Bridge\Doctrine\Messenger\DoctrineClearEntityManagerWorkerSubscriber; |
21 | 22 | use Symfony\Component\Cache\Adapter\ApcuAdapter; |
|
31 | 32 | use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; |
32 | 33 | use Symfony\Component\DependencyInjection\Reference; |
33 | 34 | use Symfony\Component\Messenger\MessageBusInterface; |
| 35 | +use Throwable; |
34 | 36 |
|
35 | 37 | use function array_keys; |
36 | 38 | use function array_merge; |
|
48 | 50 | */ |
49 | 51 | class DoctrineMongoDBExtension extends AbstractDoctrineExtension |
50 | 52 | { |
| 53 | + /** @var string */ |
| 54 | + private static $odmVersion; |
| 55 | + |
51 | 56 | /** @internal */ |
52 | 57 | public const CONFIGURATION_TAG = 'doctrine.odm.configuration'; |
53 | 58 |
|
@@ -407,6 +412,11 @@ private function normalizeDriverOptions(array $connection) |
407 | 412 | $driverOptions['context'] = new Reference($driverOptions['context']); |
408 | 413 | } |
409 | 414 |
|
| 415 | + $driverOptions['driver'] = [ |
| 416 | + 'name' => 'symfony-mongodb', |
| 417 | + 'version' => self::getODMVersion(), |
| 418 | + ]; |
| 419 | + |
410 | 420 | return $driverOptions; |
411 | 421 | } |
412 | 422 |
|
@@ -610,4 +620,17 @@ private function buildDeprecationArgs(string $version, string $message): array |
610 | 620 | ? ['doctrine/mongodb-odm-bundle', $version, $message] |
611 | 621 | : [$message]; |
612 | 622 | } |
| 623 | + |
| 624 | + private static function getODMVersion(): string |
| 625 | + { |
| 626 | + if (self::$odmVersion === null) { |
| 627 | + try { |
| 628 | + self::$odmVersion = PrettyVersions::getVersion('doctrine/mongodb-odm')->getPrettyVersion(); |
| 629 | + } catch (Throwable $t) { |
| 630 | + return 'unknown'; |
| 631 | + } |
| 632 | + } |
| 633 | + |
| 634 | + return self::$odmVersion; |
| 635 | + } |
613 | 636 | } |
0 commit comments