[DoctrineBridge] try to fix deprecations from doctrine/persistence

This commit is contained in:
Nicolas Grekas 2019-12-12 12:44:45 +01:00
parent 349ea047e6
commit 53a4711520
28 changed files with 151 additions and 77 deletions

View File

@ -11,7 +11,8 @@
namespace Symfony\Bridge\Doctrine\CacheWarmer; namespace Symfony\Bridge\Doctrine\CacheWarmer;
use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerInterface; use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerInterface;
/** /**
@ -26,7 +27,10 @@ class ProxyCacheWarmer implements CacheWarmerInterface
{ {
private $registry; private $registry;
public function __construct(ManagerRegistry $registry) /**
* @param ManagerRegistry|LegacyManagerRegistry $registry
*/
public function __construct($registry)
{ {
$this->registry = $registry; $this->registry = $registry;
} }

View File

@ -11,10 +11,11 @@
namespace Symfony\Bridge\Doctrine\DataCollector; namespace Symfony\Bridge\Doctrine\DataCollector;
use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\DBAL\Logging\DebugStack; use Doctrine\DBAL\Logging\DebugStack;
use Doctrine\DBAL\Types\ConversionException; use Doctrine\DBAL\Types\ConversionException;
use Doctrine\DBAL\Types\Type; use Doctrine\DBAL\Types\Type;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\DataCollector\DataCollector; use Symfony\Component\HttpKernel\DataCollector\DataCollector;
@ -35,7 +36,10 @@ class DoctrineDataCollector extends DataCollector
*/ */
private $loggers = []; private $loggers = [];
public function __construct(ManagerRegistry $registry) /**
* @param ManagerRegistry|LegacyManagerRegistry $registry
*/
public function __construct($registry)
{ {
$this->registry = $registry; $this->registry = $registry;
$this->connections = $registry->getConnectionNames(); $this->connections = $registry->getConnectionNames();

View File

@ -143,7 +143,7 @@ abstract class RegisterMappingsPass implements CompilerPassInterface
$mappingDriverDef = $this->getDriver($container); $mappingDriverDef = $this->getDriver($container);
$chainDriverDefService = $this->getChainDriverServiceName($container); $chainDriverDefService = $this->getChainDriverServiceName($container);
// Definition for a Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain // Definition for a Doctrine\Persistence\Mapping\Driver\MappingDriverChain
$chainDriverDef = $container->getDefinition($chainDriverDefService); $chainDriverDef = $container->getDefinition($chainDriverDefService);
foreach ($this->namespaces as $namespace) { foreach ($this->namespaces as $namespace) {
$chainDriverDef->addMethodCall('addDriver', [$mappingDriverDef, $namespace]); $chainDriverDef->addMethodCall('addDriver', [$mappingDriverDef, $namespace]);

View File

@ -11,7 +11,8 @@
namespace Symfony\Bridge\Doctrine\Form\ChoiceList; namespace Symfony\Bridge\Doctrine\Form\ChoiceList;
use Doctrine\Common\Persistence\ObjectManager; use Doctrine\Common\Persistence\ObjectManager as LegacyObjectManager;
use Doctrine\Persistence\ObjectManager;
use Symfony\Component\Form\ChoiceList\ArrayChoiceList; use Symfony\Component\Form\ChoiceList\ArrayChoiceList;
use Symfony\Component\Form\ChoiceList\ChoiceListInterface; use Symfony\Component\Form\ChoiceList\ChoiceListInterface;
use Symfony\Component\Form\ChoiceList\Factory\ChoiceListFactoryInterface; use Symfony\Component\Form\ChoiceList\Factory\ChoiceListFactoryInterface;
@ -41,11 +42,11 @@ class DoctrineChoiceLoader implements ChoiceLoaderInterface
* passed which optimizes the object loading for one of the Doctrine * passed which optimizes the object loading for one of the Doctrine
* mapper implementations. * mapper implementations.
* *
* @param ObjectManager $manager The object manager * @param ObjectManager|LegacyObjectManager $manager The object manager
* @param string $class The class name of the loaded objects * @param string $class The class name of the loaded objects
* @param IdReader $idReader The reader for the object IDs * @param IdReader $idReader The reader for the object IDs
* @param EntityLoaderInterface|null $objectLoader The objects loader * @param EntityLoaderInterface|null $objectLoader The objects loader
* @param ChoiceListFactoryInterface $factory The factory for creating the loaded choice list * @param ChoiceListFactoryInterface $factory The factory for creating the loaded choice list
*/ */
public function __construct($manager, $class, $idReader = null, $objectLoader = null, $factory = null) public function __construct($manager, $class, $idReader = null, $objectLoader = null, $factory = null)
{ {

View File

@ -11,8 +11,10 @@
namespace Symfony\Bridge\Doctrine\Form\ChoiceList; namespace Symfony\Bridge\Doctrine\Form\ChoiceList;
use Doctrine\Common\Persistence\Mapping\ClassMetadata; use Doctrine\Common\Persistence\Mapping\ClassMetadata as LegacyClassMetadata;
use Doctrine\Common\Persistence\ObjectManager; use Doctrine\Common\Persistence\ObjectManager as LegacyObjectManager;
use Doctrine\Persistence\Mapping\ClassMetadata;
use Doctrine\Persistence\ObjectManager;
use Symfony\Component\Form\Exception\RuntimeException; use Symfony\Component\Form\Exception\RuntimeException;
/** /**
@ -35,7 +37,11 @@ class IdReader
*/ */
private $associationIdReader; private $associationIdReader;
public function __construct(ObjectManager $om, ClassMetadata $classMetadata) /**
* @param ObjectManager|LegacyObjectManager $om
* @param ClassMetadata|LegacyClassMetadata $classMetadata
*/
public function __construct($om, $classMetadata)
{ {
$ids = $classMetadata->getIdentifierFieldNames(); $ids = $classMetadata->getIdentifierFieldNames();
$idType = $classMetadata->getTypeOfField(current($ids)); $idType = $classMetadata->getTypeOfField(current($ids));

View File

@ -11,7 +11,8 @@
namespace Symfony\Bridge\Doctrine\Form; namespace Symfony\Bridge\Doctrine\Form;
use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractExtension; use Symfony\Component\Form\AbstractExtension;
@ -19,7 +20,10 @@ class DoctrineOrmExtension extends AbstractExtension
{ {
protected $registry; protected $registry;
public function __construct(ManagerRegistry $registry) /**
* @param ManagerRegistry|LegacyManagerRegistry $registry
*/
public function __construct($registry)
{ {
$this->registry = $registry; $this->registry = $registry;
} }

View File

@ -11,12 +11,14 @@
namespace Symfony\Bridge\Doctrine\Form; namespace Symfony\Bridge\Doctrine\Form;
use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Common\Persistence\Mapping\MappingException; use Doctrine\Common\Persistence\Mapping\MappingException as LegacyCommonMappingException;
use Doctrine\Common\Util\ClassUtils; use Doctrine\Common\Util\ClassUtils;
use Doctrine\DBAL\Types\Type; use Doctrine\DBAL\Types\Type;
use Doctrine\ORM\Mapping\ClassMetadataInfo; use Doctrine\ORM\Mapping\ClassMetadataInfo;
use Doctrine\ORM\Mapping\MappingException as LegacyMappingException; use Doctrine\ORM\Mapping\MappingException as LegacyMappingException;
use Doctrine\Persistence\ManagerRegistry;
use Doctrine\Persistence\Mapping\MappingException;
use Symfony\Component\Form\FormTypeGuesserInterface; use Symfony\Component\Form\FormTypeGuesserInterface;
use Symfony\Component\Form\Guess\Guess; use Symfony\Component\Form\Guess\Guess;
use Symfony\Component\Form\Guess\TypeGuess; use Symfony\Component\Form\Guess\TypeGuess;
@ -28,7 +30,10 @@ class DoctrineOrmTypeGuesser implements FormTypeGuesserInterface
private $cache = []; private $cache = [];
public function __construct(ManagerRegistry $registry) /**
* @param ManagerRegistry|LegacyManagerRegistry $registry
*/
public function __construct($registry)
{ {
$this->registry = $registry; $this->registry = $registry;
} }
@ -173,6 +178,8 @@ class DoctrineOrmTypeGuesser implements FormTypeGuesserInterface
return $this->cache[$class] = [$em->getClassMetadata($class), $name]; return $this->cache[$class] = [$em->getClassMetadata($class), $name];
} catch (MappingException $e) { } catch (MappingException $e) {
// not an entity or mapped super class // not an entity or mapped super class
} catch (LegacyCommonMappingException $e) {
// not an entity or mapped super class
} catch (LegacyMappingException $e) { } catch (LegacyMappingException $e) {
// not an entity or mapped super class, using Doctrine ORM 2.2 // not an entity or mapped super class, using Doctrine ORM 2.2
} }

View File

@ -11,8 +11,10 @@
namespace Symfony\Bridge\Doctrine\Form\Type; namespace Symfony\Bridge\Doctrine\Form\Type;
use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Common\Persistence\ObjectManager; use Doctrine\Common\Persistence\ObjectManager as LegacyObjectManager;
use Doctrine\Persistence\ManagerRegistry;
use Doctrine\Persistence\ObjectManager;
use Symfony\Bridge\Doctrine\Form\ChoiceList\DoctrineChoiceLoader; use Symfony\Bridge\Doctrine\Form\ChoiceList\DoctrineChoiceLoader;
use Symfony\Bridge\Doctrine\Form\ChoiceList\EntityLoaderInterface; use Symfony\Bridge\Doctrine\Form\ChoiceList\EntityLoaderInterface;
use Symfony\Bridge\Doctrine\Form\ChoiceList\IdReader; use Symfony\Bridge\Doctrine\Form\ChoiceList\IdReader;
@ -99,7 +101,10 @@ abstract class DoctrineType extends AbstractType
return false; return false;
} }
public function __construct(ManagerRegistry $registry) /**
* @param ManagerRegistry|LegacyManagerRegistry $registry
*/
public function __construct($registry)
{ {
$this->registry = $registry; $this->registry = $registry;
} }
@ -194,9 +199,8 @@ abstract class DoctrineType extends AbstractType
}; };
$emNormalizer = function (Options $options, $em) { $emNormalizer = function (Options $options, $em) {
/* @var ManagerRegistry $registry */
if (null !== $em) { if (null !== $em) {
if ($em instanceof ObjectManager) { if ($em instanceof ObjectManager || $em instanceof LegacyObjectManager) {
return $em; return $em;
} }
@ -262,7 +266,7 @@ abstract class DoctrineType extends AbstractType
$resolver->setNormalizer('query_builder', $queryBuilderNormalizer); $resolver->setNormalizer('query_builder', $queryBuilderNormalizer);
$resolver->setNormalizer('id_reader', $idReaderNormalizer); $resolver->setNormalizer('id_reader', $idReaderNormalizer);
$resolver->setAllowedTypes('em', ['null', 'string', 'Doctrine\Common\Persistence\ObjectManager']); $resolver->setAllowedTypes('em', ['null', 'string', ObjectManager::class, LegacyObjectManager::class]);
} }
/** /**
@ -273,7 +277,7 @@ abstract class DoctrineType extends AbstractType
* *
* @return EntityLoaderInterface * @return EntityLoaderInterface
*/ */
abstract public function getLoader(ObjectManager $manager, $queryBuilder, $class); abstract public function getLoader(LegacyObjectManager $manager, $queryBuilder, $class);
public function getParent() public function getParent()
{ {

View File

@ -11,7 +11,7 @@
namespace Symfony\Bridge\Doctrine\Form\Type; namespace Symfony\Bridge\Doctrine\Form\Type;
use Doctrine\Common\Persistence\ObjectManager; use Doctrine\Common\Persistence\ObjectManager as LegacyObjectManager;
use Doctrine\ORM\Query\Parameter; use Doctrine\ORM\Query\Parameter;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
use Symfony\Bridge\Doctrine\Form\ChoiceList\ORMQueryBuilderLoader; use Symfony\Bridge\Doctrine\Form\ChoiceList\ORMQueryBuilderLoader;
@ -51,7 +51,7 @@ class EntityType extends DoctrineType
* *
* @return ORMQueryBuilderLoader * @return ORMQueryBuilderLoader
*/ */
public function getLoader(ObjectManager $manager, $queryBuilder, $class) public function getLoader(LegacyObjectManager $manager, $queryBuilder, $class)
{ {
return new ORMQueryBuilderLoader($queryBuilder); return new ORMQueryBuilderLoader($queryBuilder);
} }

View File

@ -11,7 +11,7 @@
namespace Symfony\Bridge\Doctrine; namespace Symfony\Bridge\Doctrine;
use Doctrine\Common\Persistence\AbstractManagerRegistry; use Doctrine\Common\Persistence\AbstractManagerRegistry as LegacyAbstractManagerRegistry;
use ProxyManager\Proxy\LazyLoadingInterface; use ProxyManager\Proxy\LazyLoadingInterface;
use Symfony\Component\DependencyInjection\Container; use Symfony\Component\DependencyInjection\Container;
use Symfony\Component\DependencyInjection\ContainerAwareInterface; use Symfony\Component\DependencyInjection\ContainerAwareInterface;
@ -22,7 +22,7 @@ use Symfony\Component\DependencyInjection\ContainerInterface as SymfonyContainer
* *
* @author Lukas Kahwe Smith <smith@pooteeweet.org> * @author Lukas Kahwe Smith <smith@pooteeweet.org>
*/ */
abstract class ManagerRegistry extends AbstractManagerRegistry implements ContainerAwareInterface abstract class ManagerRegistry extends LegacyAbstractManagerRegistry implements ContainerAwareInterface
{ {
/** /**
* @var Container * @var Container

View File

@ -11,11 +11,13 @@
namespace Symfony\Bridge\Doctrine\PropertyInfo; namespace Symfony\Bridge\Doctrine\PropertyInfo;
use Doctrine\Common\Persistence\Mapping\ClassMetadataFactory; use Doctrine\Common\Persistence\Mapping\ClassMetadataFactory as LegacyClassMetadataFactory;
use Doctrine\Common\Persistence\Mapping\MappingException; use Doctrine\Common\Persistence\Mapping\MappingException as LegacyMappingException;
use Doctrine\DBAL\Types\Type as DBALType; use Doctrine\DBAL\Types\Type as DBALType;
use Doctrine\ORM\Mapping\ClassMetadataInfo; use Doctrine\ORM\Mapping\ClassMetadataInfo;
use Doctrine\ORM\Mapping\MappingException as OrmMappingException; use Doctrine\ORM\Mapping\MappingException as OrmMappingException;
use Doctrine\Persistence\Mapping\ClassMetadataFactory;
use Doctrine\Persistence\Mapping\MappingException;
use Symfony\Component\PropertyInfo\PropertyListExtractorInterface; use Symfony\Component\PropertyInfo\PropertyListExtractorInterface;
use Symfony\Component\PropertyInfo\PropertyTypeExtractorInterface; use Symfony\Component\PropertyInfo\PropertyTypeExtractorInterface;
use Symfony\Component\PropertyInfo\Type; use Symfony\Component\PropertyInfo\Type;
@ -29,7 +31,10 @@ class DoctrineExtractor implements PropertyListExtractorInterface, PropertyTypeE
{ {
private $classMetadataFactory; private $classMetadataFactory;
public function __construct(ClassMetadataFactory $classMetadataFactory) /**
* @param ClassMetadataFactory|LegacyClassMetadataFactory $classMetadataFactory
*/
public function __construct($classMetadataFactory)
{ {
$this->classMetadataFactory = $classMetadataFactory; $this->classMetadataFactory = $classMetadataFactory;
} }
@ -45,6 +50,8 @@ class DoctrineExtractor implements PropertyListExtractorInterface, PropertyTypeE
return null; return null;
} catch (OrmMappingException $exception) { } catch (OrmMappingException $exception) {
return null; return null;
} catch (LegacyMappingException $exception) {
return null;
} }
$properties = array_merge($metadata->getFieldNames(), $metadata->getAssociationNames()); $properties = array_merge($metadata->getFieldNames(), $metadata->getAssociationNames());
@ -71,6 +78,8 @@ class DoctrineExtractor implements PropertyListExtractorInterface, PropertyTypeE
return null; return null;
} catch (OrmMappingException $exception) { } catch (OrmMappingException $exception) {
return null; return null;
} catch (LegacyMappingException $exception) {
return null;
} }
if ($metadata->hasAssociation($property)) { if ($metadata->hasAssociation($property)) {

View File

@ -11,7 +11,7 @@
namespace Symfony\Bridge\Doctrine; namespace Symfony\Bridge\Doctrine;
use Doctrine\Common\Persistence\ManagerRegistry as ManagerRegistryInterface; use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\ORM\EntityManager; use Doctrine\ORM\EntityManager;
/** /**
@ -19,7 +19,7 @@ use Doctrine\ORM\EntityManager;
* *
* @author Fabien Potencier <fabien@symfony.com> * @author Fabien Potencier <fabien@symfony.com>
*/ */
interface RegistryInterface extends ManagerRegistryInterface interface RegistryInterface extends LegacyManagerRegistry
{ {
/** /**
* Gets the default entity manager name. * Gets the default entity manager name.

View File

@ -11,7 +11,8 @@
namespace Symfony\Bridge\Doctrine\Security\User; namespace Symfony\Bridge\Doctrine\Security\User;
use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\Security\Core\Exception\UnsupportedUserException; use Symfony\Component\Security\Core\Exception\UnsupportedUserException;
use Symfony\Component\Security\Core\Exception\UsernameNotFoundException; use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;
use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Security\Core\User\UserInterface;
@ -33,7 +34,10 @@ class EntityUserProvider implements UserProviderInterface
private $class; private $class;
private $property; private $property;
public function __construct(ManagerRegistry $registry, $classOrAlias, $property = null, $managerName = null) /**
* @param ManagerRegistry|LegacyManagerRegistry $registry
*/
public function __construct($registry, $classOrAlias, $property = null, $managerName = null)
{ {
$this->registry = $registry; $this->registry = $registry;
$this->managerName = $managerName; $this->managerName = $managerName;

View File

@ -11,10 +11,11 @@
namespace Symfony\Bridge\Doctrine\Test; namespace Symfony\Bridge\Doctrine\Test;
use Doctrine\Common\Persistence\ObjectRepository; use Doctrine\Common\Persistence\ObjectRepository as LegacyObjectRepository;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Mapping\ClassMetadata; use Doctrine\ORM\Mapping\ClassMetadata;
use Doctrine\ORM\Repository\RepositoryFactory; use Doctrine\ORM\Repository\RepositoryFactory;
use Doctrine\Persistence\ObjectRepository;
/** /**
* @author Andreas Braun <alcaeus@alcaeus.org> * @author Andreas Braun <alcaeus@alcaeus.org>
@ -40,7 +41,7 @@ final class TestRepositoryFactory implements RepositoryFactory
return $this->repositoryList[$repositoryHash] = $this->createRepository($entityManager, $entityName); return $this->repositoryList[$repositoryHash] = $this->createRepository($entityManager, $entityName);
} }
public function setRepository(EntityManagerInterface $entityManager, $entityName, ObjectRepository $repository) public function setRepository(EntityManagerInterface $entityManager, $entityName, LegacyObjectRepository $repository)
{ {
$repositoryHash = $this->getRepositoryHash($entityManager, $entityName); $repositoryHash = $this->getRepositoryHash($entityManager, $entityName);
@ -48,7 +49,7 @@ final class TestRepositoryFactory implements RepositoryFactory
} }
/** /**
* @return ObjectRepository * @return ObjectRepository|LegacyObjectRepository
*/ */
private function createRepository(EntityManagerInterface $entityManager, $entityName) private function createRepository(EntityManagerInterface $entityManager, $entityName)
{ {

View File

@ -11,8 +11,10 @@
namespace Symfony\Bridge\Doctrine\Tests\DataCollector; namespace Symfony\Bridge\Doctrine\Tests\DataCollector;
use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Platforms\MySqlPlatform;
use Doctrine\DBAL\Version; use Doctrine\DBAL\Version;
use Doctrine\Persistence\ManagerRegistry;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Symfony\Bridge\Doctrine\DataCollector\DoctrineDataCollector; use Symfony\Bridge\Doctrine\DataCollector\DoctrineDataCollector;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
@ -180,7 +182,7 @@ class DoctrineDataCollectorTest extends TestCase
->method('getDatabasePlatform') ->method('getDatabasePlatform')
->willReturn(new MySqlPlatform()); ->willReturn(new MySqlPlatform());
$registry = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')->getMock(); $registry = $this->getMockBuilder(interface_exists(ManagerRegistry::class) ? ManagerRegistry::class : LegacyManagerRegistry::class)->getMock();
$registry $registry
->expects($this->any()) ->expects($this->any())
->method('getConnectionNames') ->method('getConnectionNames')

View File

@ -12,7 +12,7 @@
namespace Symfony\Bridge\Doctrine\Tests\Fixtures; namespace Symfony\Bridge\Doctrine\Tests\Fixtures;
use Doctrine\Common\DataFixtures\FixtureInterface; use Doctrine\Common\DataFixtures\FixtureInterface;
use Doctrine\Common\Persistence\ObjectManager; use Doctrine\Common\Persistence\ObjectManager as LegacyObjectManager;
use Symfony\Component\DependencyInjection\ContainerAwareInterface; use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\ContainerInterface;
@ -25,7 +25,7 @@ class ContainerAwareFixture implements FixtureInterface, ContainerAwareInterface
$this->container = $container; $this->container = $container;
} }
public function load(ObjectManager $manager) public function load(LegacyObjectManager $manager)
{ {
} }
} }

View File

@ -11,9 +11,11 @@
namespace Symfony\Bridge\Doctrine\Tests\Form\ChoiceList; namespace Symfony\Bridge\Doctrine\Tests\Form\ChoiceList;
use Doctrine\Common\Persistence\ObjectManager; use Doctrine\Common\Persistence\ObjectManager as LegacyObjectManager;
use Doctrine\Common\Persistence\ObjectRepository; use Doctrine\Common\Persistence\ObjectRepository as LegacyObjectRepository;
use Doctrine\ORM\Mapping\ClassMetadata; use Doctrine\ORM\Mapping\ClassMetadata;
use Doctrine\Persistence\ObjectManager;
use Doctrine\Persistence\ObjectRepository;
use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Symfony\Bridge\Doctrine\Form\ChoiceList\DoctrineChoiceLoader; use Symfony\Bridge\Doctrine\Form\ChoiceList\DoctrineChoiceLoader;
@ -75,8 +77,8 @@ class DoctrineChoiceLoaderTest extends TestCase
protected function setUp() protected function setUp()
{ {
$this->factory = $this->getMockBuilder('Symfony\Component\Form\ChoiceList\Factory\ChoiceListFactoryInterface')->getMock(); $this->factory = $this->getMockBuilder('Symfony\Component\Form\ChoiceList\Factory\ChoiceListFactoryInterface')->getMock();
$this->om = $this->getMockBuilder('Doctrine\Common\Persistence\ObjectManager')->getMock(); $this->om = $this->getMockBuilder(interface_exists(ObjectManager::class) ? ObjectManager::class : LegacyObjectManager::class)->getMock();
$this->repository = $this->getMockBuilder('Doctrine\Common\Persistence\ObjectRepository')->getMock(); $this->repository = $this->getMockBuilder(interface_exists(ObjectRepository::class) ? ObjectRepository::class : LegacyObjectRepository::class)->getMock();
$this->class = 'stdClass'; $this->class = 'stdClass';
$this->idReader = $this->getMockBuilder('Symfony\Bridge\Doctrine\Form\ChoiceList\IdReader') $this->idReader = $this->getMockBuilder('Symfony\Bridge\Doctrine\Form\ChoiceList\IdReader')
->disableOriginalConstructor() ->disableOriginalConstructor()

View File

@ -11,7 +11,11 @@
namespace Symfony\Bridge\Doctrine\Tests\Form; namespace Symfony\Bridge\Doctrine\Tests\Form;
use Doctrine\Common\Persistence\Mapping\ClassMetadata; use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Common\Persistence\ObjectManager as LegacyObjectManager;
use Doctrine\ORM\Mapping\ClassMetadata;
use Doctrine\Persistence\ManagerRegistry;
use Doctrine\Persistence\ObjectManager;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Symfony\Bridge\Doctrine\Form\DoctrineOrmTypeGuesser; use Symfony\Bridge\Doctrine\Form\DoctrineOrmTypeGuesser;
use Symfony\Component\Form\Guess\Guess; use Symfony\Component\Form\Guess\Guess;
@ -83,10 +87,10 @@ class DoctrineOrmTypeGuesserTest extends TestCase
private function getGuesser(ClassMetadata $classMetadata) private function getGuesser(ClassMetadata $classMetadata)
{ {
$em = $this->getMockBuilder('Doctrine\Common\Persistence\ObjectManager')->getMock(); $em = $this->getMockBuilder(interface_exists(ObjectManager::class) ? ObjectManager::class : LegacyObjectManager::class)->getMock();
$em->expects($this->once())->method('getClassMetaData')->with('TestEntity')->willReturn($classMetadata); $em->expects($this->once())->method('getClassMetaData')->with('TestEntity')->willReturn($classMetadata);
$registry = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')->getMock(); $registry = $this->getMockBuilder(interface_exists(ManagerRegistry::class) ? ManagerRegistry::class : LegacyManagerRegistry::class)->getMock();
$registry->expects($this->once())->method('getManagers')->willReturn([$em]); $registry->expects($this->once())->method('getManagers')->willReturn([$em]);
return new DoctrineOrmTypeGuesser($registry); return new DoctrineOrmTypeGuesser($registry);

View File

@ -11,7 +11,9 @@
namespace Symfony\Bridge\Doctrine\Tests\Form\Type; namespace Symfony\Bridge\Doctrine\Tests\Form\Type;
use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\ORM\Tools\SchemaTool; use Doctrine\ORM\Tools\SchemaTool;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bridge\Doctrine\Form\DoctrineOrmExtension; use Symfony\Bridge\Doctrine\Form\DoctrineOrmExtension;
use Symfony\Bridge\Doctrine\Test\DoctrineTestHelper; use Symfony\Bridge\Doctrine\Test\DoctrineTestHelper;
use Symfony\Bridge\Doctrine\Tests\Fixtures\SingleIntIdEntity; use Symfony\Bridge\Doctrine\Tests\Fixtures\SingleIntIdEntity;
@ -34,7 +36,7 @@ class EntityTypePerformanceTest extends FormPerformanceTestCase
protected function getExtensions() protected function getExtensions()
{ {
$manager = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')->getMock(); $manager = $this->getMockBuilder(interface_exists(ManagerRegistry::class) ? ManagerRegistry::class : LegacyManagerRegistry::class)->getMock();
$manager->expects($this->any()) $manager->expects($this->any())
->method('getManager') ->method('getManager')

View File

@ -12,10 +12,11 @@
namespace Symfony\Bridge\Doctrine\Tests\Form\Type; namespace Symfony\Bridge\Doctrine\Tests\Form\Type;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\ORM\EntityManager; use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityRepository; use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\Tools\SchemaTool; use Doctrine\ORM\Tools\SchemaTool;
use Doctrine\Persistence\ManagerRegistry;
use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\MockObject\MockObject;
use Symfony\Bridge\Doctrine\Form\DoctrineOrmExtension; use Symfony\Bridge\Doctrine\Form\DoctrineOrmExtension;
use Symfony\Bridge\Doctrine\Form\DoctrineOrmTypeGuesser; use Symfony\Bridge\Doctrine\Form\DoctrineOrmTypeGuesser;
@ -1228,7 +1229,7 @@ class EntityTypeTest extends BaseTypeTest
protected function createRegistryMock($name, $em) protected function createRegistryMock($name, $em)
{ {
$registry = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')->getMock(); $registry = $this->getMockBuilder(interface_exists(ManagerRegistry::class) ? ManagerRegistry::class : LegacyManagerRegistry::class)->getMock();
$registry->expects($this->any()) $registry->expects($this->any())
->method('getManager') ->method('getManager')
->with($this->equalTo($name)) ->with($this->equalTo($name))

View File

@ -11,7 +11,11 @@
namespace Symfony\Bridge\Doctrine\Tests\Security\User; namespace Symfony\Bridge\Doctrine\Tests\Security\User;
use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Common\Persistence\ObjectManager as LegacyObjectManager;
use Doctrine\ORM\Tools\SchemaTool; use Doctrine\ORM\Tools\SchemaTool;
use Doctrine\Persistence\ManagerRegistry;
use Doctrine\Persistence\ObjectManager;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Symfony\Bridge\Doctrine\Security\User\EntityUserProvider; use Symfony\Bridge\Doctrine\Security\User\EntityUserProvider;
use Symfony\Bridge\Doctrine\Test\DoctrineTestHelper; use Symfony\Bridge\Doctrine\Test\DoctrineTestHelper;
@ -178,7 +182,7 @@ class EntityUserProviderTest extends TestCase
private function getManager($em, $name = null) private function getManager($em, $name = null)
{ {
$manager = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')->getMock(); $manager = $this->getMockBuilder(interface_exists(ManagerRegistry::class) ? ManagerRegistry::class : LegacyManagerRegistry::class)->getMock();
$manager->expects($this->any()) $manager->expects($this->any())
->method('getManager') ->method('getManager')
->with($this->equalTo($name)) ->with($this->equalTo($name))
@ -189,7 +193,7 @@ class EntityUserProviderTest extends TestCase
private function getObjectManager($repository) private function getObjectManager($repository)
{ {
$em = $this->getMockBuilder('\Doctrine\Common\Persistence\ObjectManager') $em = $this->getMockBuilder(interface_exists(ObjectManager::class) ? ObjectManager::class : LegacyObjectManager::class)
->setMethods(['getClassMetadata', 'getRepository']) ->setMethods(['getClassMetadata', 'getRepository'])
->getMockForAbstractClass(); ->getMockForAbstractClass();
$em->expects($this->any()) $em->expects($this->any())

View File

@ -12,11 +12,16 @@
namespace Symfony\Bridge\Doctrine\Tests\Validator\Constraints; namespace Symfony\Bridge\Doctrine\Tests\Validator\Constraints;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Common\Persistence\ObjectManager; use Doctrine\Common\Persistence\Mapping\ClassMetadata as LegacyClassMetadata;
use Doctrine\Common\Persistence\ObjectRepository; use Doctrine\Common\Persistence\ObjectManager as LegacyObjectManager;
use Doctrine\Common\Persistence\ObjectRepository as LegacyObjectRepository;
use Doctrine\DBAL\Types\Type; use Doctrine\DBAL\Types\Type;
use Doctrine\ORM\Tools\SchemaTool; use Doctrine\ORM\Tools\SchemaTool;
use Doctrine\Persistence\ManagerRegistry;
use Doctrine\Persistence\Mapping\ClassMetadata;
use Doctrine\Persistence\ObjectManager;
use Doctrine\Persistence\ObjectRepository;
use Symfony\Bridge\Doctrine\Test\DoctrineTestHelper; use Symfony\Bridge\Doctrine\Test\DoctrineTestHelper;
use Symfony\Bridge\Doctrine\Test\TestRepositoryFactory; use Symfony\Bridge\Doctrine\Test\TestRepositoryFactory;
use Symfony\Bridge\Doctrine\Tests\Fixtures\AssociationEntity; use Symfony\Bridge\Doctrine\Tests\Fixtures\AssociationEntity;
@ -76,9 +81,9 @@ class UniqueEntityValidatorTest extends ConstraintValidatorTestCase
parent::setUp(); parent::setUp();
} }
protected function createRegistryMock(ObjectManager $em = null) protected function createRegistryMock($em = null)
{ {
$registry = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')->getMock(); $registry = $this->getMockBuilder(interface_exists(ManagerRegistry::class) ? ManagerRegistry::class : LegacyManagerRegistry::class)->getMock();
$registry->expects($this->any()) $registry->expects($this->any())
->method('getManager') ->method('getManager')
->with($this->equalTo(self::EM_NAME)) ->with($this->equalTo(self::EM_NAME))
@ -89,7 +94,7 @@ class UniqueEntityValidatorTest extends ConstraintValidatorTestCase
protected function createRepositoryMock() protected function createRepositoryMock()
{ {
$repository = $this->getMockBuilder('Doctrine\Common\Persistence\ObjectRepository') $repository = $this->getMockBuilder(interface_exists(ObjectRepository::class) ? ObjectRepository::class : LegacyObjectRepository::class)
->setMethods(['findByCustom', 'find', 'findAll', 'findOneBy', 'findBy', 'getClassName']) ->setMethods(['findByCustom', 'find', 'findAll', 'findOneBy', 'findBy', 'getClassName'])
->getMock() ->getMock()
; ;
@ -99,7 +104,7 @@ class UniqueEntityValidatorTest extends ConstraintValidatorTestCase
protected function createEntityManagerMock($repositoryMock) protected function createEntityManagerMock($repositoryMock)
{ {
$em = $this->getMockBuilder('Doctrine\Common\Persistence\ObjectManager') $em = $this->getMockBuilder(interface_exists(ObjectManager::class) ? ObjectManager::class : LegacyObjectManager::class)
->getMock() ->getMock()
; ;
$em->expects($this->any()) $em->expects($this->any())
@ -107,7 +112,7 @@ class UniqueEntityValidatorTest extends ConstraintValidatorTestCase
->willReturn($repositoryMock) ->willReturn($repositoryMock)
; ;
$classMetadata = $this->getMockBuilder('Doctrine\Common\Persistence\Mapping\ClassMetadata')->getMock(); $classMetadata = $this->getMockBuilder(interface_exists(ClassMetadata::class) ? ClassMetadata::class : LegacyClassMetadata::class)->getMock();
$classMetadata $classMetadata
->expects($this->any()) ->expects($this->any())
->method('hasField') ->method('hasField')
@ -141,7 +146,7 @@ class UniqueEntityValidatorTest extends ConstraintValidatorTestCase
return new UniqueEntityValidator($this->registry); return new UniqueEntityValidator($this->registry);
} }
private function createSchema(ObjectManager $em) private function createSchema($em)
{ {
$schemaTool = new SchemaTool($em); $schemaTool = new SchemaTool($em);
$schemaTool->createSchema([ $schemaTool->createSchema([

View File

@ -11,9 +11,8 @@
namespace Symfony\Bridge\Doctrine\Validator\Constraints; namespace Symfony\Bridge\Doctrine\Validator\Constraints;
use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Common\Persistence\Mapping\ClassMetadata; use Doctrine\Persistence\ManagerRegistry;
use Doctrine\Common\Persistence\ObjectManager;
use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\ConstraintValidator;
use Symfony\Component\Validator\Exception\ConstraintDefinitionException; use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
@ -28,7 +27,10 @@ class UniqueEntityValidator extends ConstraintValidator
{ {
private $registry; private $registry;
public function __construct(ManagerRegistry $registry) /**
* @param ManagerRegistry|LegacyManagerRegistry $registry
*/
public function __construct($registry)
{ {
$this->registry = $registry; $this->registry = $registry;
} }
@ -78,7 +80,6 @@ class UniqueEntityValidator extends ConstraintValidator
} }
$class = $em->getClassMetadata(\get_class($entity)); $class = $em->getClassMetadata(\get_class($entity));
/* @var $class \Doctrine\Common\Persistence\Mapping\ClassMetadata */
$criteria = []; $criteria = [];
$hasNullValue = false; $hasNullValue = false;
@ -179,7 +180,7 @@ class UniqueEntityValidator extends ConstraintValidator
->addViolation(); ->addViolation();
} }
private function formatWithIdentifiers(ObjectManager $em, ClassMetadata $class, $value) private function formatWithIdentifiers($em, $class, $value)
{ {
if (!\is_object($value) || $value instanceof \DateTimeInterface) { if (!\is_object($value) || $value instanceof \DateTimeInterface) {
return $this->formatValue($value, self::PRETTY_DATE); return $this->formatValue($value, self::PRETTY_DATE);

View File

@ -11,7 +11,8 @@
namespace Symfony\Bridge\Doctrine\Validator; namespace Symfony\Bridge\Doctrine\Validator;
use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\Validator\ObjectInitializerInterface; use Symfony\Component\Validator\ObjectInitializerInterface;
/** /**
@ -23,7 +24,10 @@ class DoctrineInitializer implements ObjectInitializerInterface
{ {
protected $registry; protected $registry;
public function __construct(ManagerRegistry $registry) /**
* @param ManagerRegistry|LegacyManagerRegistry $registry
*/
public function __construct($registry)
{ {
$this->registry = $registry; $this->registry = $registry;
} }

View File

@ -11,7 +11,8 @@
namespace Symfony\Bundle\FrameworkBundle\Controller; namespace Symfony\Bundle\FrameworkBundle\Controller;
use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Persistence\ManagerRegistry;
use Psr\Container\ContainerInterface; use Psr\Container\ContainerInterface;
use Symfony\Component\DependencyInjection\ServiceSubscriberInterface; use Symfony\Component\DependencyInjection\ServiceSubscriberInterface;
use Symfony\Component\Form\FormFactoryInterface; use Symfony\Component\Form\FormFactoryInterface;
@ -63,7 +64,7 @@ abstract class AbstractController implements ServiceSubscriberInterface
'security.authorization_checker' => '?'.AuthorizationCheckerInterface::class, 'security.authorization_checker' => '?'.AuthorizationCheckerInterface::class,
'templating' => '?'.EngineInterface::class, 'templating' => '?'.EngineInterface::class,
'twig' => '?'.Environment::class, 'twig' => '?'.Environment::class,
'doctrine' => '?'.ManagerRegistry::class, 'doctrine' => '?'.(interface_exists(ManagerRegistry::class) ? ManagerRegistry::class : LegacyManagerRegistry::class),
'form.factory' => '?'.FormFactoryInterface::class, 'form.factory' => '?'.FormFactoryInterface::class,
'security.token_storage' => '?'.TokenStorageInterface::class, 'security.token_storage' => '?'.TokenStorageInterface::class,
'security.csrf.token_manager' => '?'.CsrfTokenManagerInterface::class, 'security.csrf.token_manager' => '?'.CsrfTokenManagerInterface::class,

View File

@ -11,7 +11,8 @@
namespace Symfony\Bundle\FrameworkBundle\Controller; namespace Symfony\Bundle\FrameworkBundle\Controller;
use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Persistence\ManagerRegistry;
use Psr\Container\ContainerInterface; use Psr\Container\ContainerInterface;
use Symfony\Component\Form\Extension\Core\Type\FormType; use Symfony\Component\Form\Extension\Core\Type\FormType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
@ -414,7 +415,7 @@ trait ControllerTrait
/** /**
* Shortcut to return the Doctrine Registry service. * Shortcut to return the Doctrine Registry service.
* *
* @return ManagerRegistry * @return ManagerRegistry|LegacyManagerRegistry
* *
* @throws \LogicException If DoctrineBundle is not available * @throws \LogicException If DoctrineBundle is not available
* *

View File

@ -11,6 +11,8 @@
namespace Symfony\Bundle\FrameworkBundle\Tests\Controller; namespace Symfony\Bundle\FrameworkBundle\Tests\Controller;
use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bundle\FrameworkBundle\Controller\ControllerTrait; use Symfony\Bundle\FrameworkBundle\Controller\ControllerTrait;
use Symfony\Bundle\FrameworkBundle\Tests\TestCase; use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
use Symfony\Component\DependencyInjection\Container; use Symfony\Component\DependencyInjection\Container;
@ -513,7 +515,7 @@ abstract class ControllerTraitTest extends TestCase
public function testGetDoctrine() public function testGetDoctrine()
{ {
$doctrine = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')->getMock(); $doctrine = $this->getMockBuilder(interface_exists(ManagerRegistry::class) ? ManagerRegistry::class : LegacyManagerRegistry::class)->getMock();
$container = new Container(); $container = new Container();
$container->set('doctrine', $doctrine); $container->set('doctrine', $doctrine);

View File

@ -45,6 +45,7 @@ abstract class AbstractCloner implements ClonerInterface
'Doctrine\Common\Proxy\Proxy' => ['Symfony\Component\VarDumper\Caster\DoctrineCaster', 'castCommonProxy'], 'Doctrine\Common\Proxy\Proxy' => ['Symfony\Component\VarDumper\Caster\DoctrineCaster', 'castCommonProxy'],
'Doctrine\ORM\Proxy\Proxy' => ['Symfony\Component\VarDumper\Caster\DoctrineCaster', 'castOrmProxy'], 'Doctrine\ORM\Proxy\Proxy' => ['Symfony\Component\VarDumper\Caster\DoctrineCaster', 'castOrmProxy'],
'Doctrine\ORM\PersistentCollection' => ['Symfony\Component\VarDumper\Caster\DoctrineCaster', 'castPersistentCollection'], 'Doctrine\ORM\PersistentCollection' => ['Symfony\Component\VarDumper\Caster\DoctrineCaster', 'castPersistentCollection'],
'Doctrine\Persistence\ObjectManager' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'],
'DOMException' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castException'], 'DOMException' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castException'],
'DOMStringList' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castLength'], 'DOMStringList' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castLength'],