From 77c57f1fe338f6dd4bc5c8ea63f45a339feebac3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Tamarelle?= Date: Wed, 22 Jan 2025 16:20:49 +0100 Subject: [PATCH] Use LazyGhostObject for proxy objects --- composer.json | 2 +- config/mongodb.php | 4 ++-- src/DependencyInjection/DoctrineMongoDBExtension.php | 6 ++---- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index 0ebe0df3..f78c11f6 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,7 @@ "php": "^8.1", "ext-mongodb": "^1.16", "composer-runtime-api": "^2.0", - "doctrine/mongodb-odm": "^2.6", + "doctrine/mongodb-odm": "^2.10@dev", "doctrine/persistence": "^3.0", "psr/log": "^1.0 || ^2.0 || ^3.0", "symfony/config": "^6.4 || ^7.0", diff --git a/config/mongodb.php b/config/mongodb.php index 2aa06a61..4acf067e 100644 --- a/config/mongodb.php +++ b/config/mongodb.php @@ -8,7 +8,7 @@ use Doctrine\Bundle\MongoDBBundle\Repository\ContainerRepositoryFactory; use Doctrine\ODM\MongoDB\DocumentManager; use Doctrine\ODM\MongoDB\Tools\ResolveTargetDocumentListener; -use ProxyManager\Proxy\GhostObjectInterface; +use Doctrine\Persistence\Proxy; use Symfony\Bridge\Doctrine\ContainerAwareEventManager; use Symfony\Bridge\Doctrine\Security\User\EntityUserProvider; use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; @@ -54,7 +54,7 @@ '%doctrine_mongodb.odm.document_managers%', '%doctrine_mongodb.odm.default_connection%', '%doctrine_mongodb.odm.default_document_manager%', - GhostObjectInterface::class, + Proxy::class, service('service_container'), ]) diff --git a/src/DependencyInjection/DoctrineMongoDBExtension.php b/src/DependencyInjection/DoctrineMongoDBExtension.php index 33d8baa2..1d29a2e0 100644 --- a/src/DependencyInjection/DoctrineMongoDBExtension.php +++ b/src/DependencyInjection/DoctrineMongoDBExtension.php @@ -255,12 +255,10 @@ protected function loadDocumentManager(array $documentManager, string|null $defa 'setPersistentCollectionDir' => '%doctrine_mongodb.odm.persistent_collection_dir%', 'setPersistentCollectionNamespace' => '%doctrine_mongodb.odm.persistent_collection_namespace%', 'setAutoGeneratePersistentCollectionClasses' => '%doctrine_mongodb.odm.auto_generate_persistent_collection_classes%', + 'setUseLazyGhostObject' => true, + 'setUseTransactionalFlush' => $documentManager['use_transactional_flush'], ]; - if (method_exists(ODMConfiguration::class, 'setUseTransactionalFlush')) { - $methods['setUseTransactionalFlush'] = $documentManager['use_transactional_flush']; - } - if ($documentManager['repository_factory']) { $methods['setRepositoryFactory'] = new Reference($documentManager['repository_factory']); }