bug #34955 Require doctrine/persistence ^1.3 (nicolas-grekas)

This PR was merged into the 4.3 branch.

Discussion
----------

Require doctrine/persistence ^1.3

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

This is the only way to remove direct deprecations triggered by doctrine/persistence ^1.3.
Requires v1.3.0 to be tagged before the next bug fix release.
/cc @alcaeus

The only deprecations that remain are triggered by the ORM now.

Commits
-------

ce5dcb96c1 Require doctrine/persistence ^1.3
This commit is contained in:
Nicolas Grekas 2019-12-12 15:55:06 +01:00
commit 72a2aff829
31 changed files with 67 additions and 136 deletions

View File

@ -19,7 +19,7 @@
"php": "^7.1.3", "php": "^7.1.3",
"ext-xml": "*", "ext-xml": "*",
"doctrine/event-manager": "~1.0", "doctrine/event-manager": "~1.0",
"doctrine/persistence": "~1.0", "doctrine/persistence": "^1.3",
"fig/link-util": "^1.0", "fig/link-util": "^1.0",
"twig/twig": "^1.41|^2.10", "twig/twig": "^1.41|^2.10",
"psr/cache": "~1.0", "psr/cache": "~1.0",

View File

@ -11,7 +11,6 @@
namespace Symfony\Bridge\Doctrine\CacheWarmer; namespace Symfony\Bridge\Doctrine\CacheWarmer;
use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerInterface; use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerInterface;
@ -27,10 +26,7 @@ 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,7 +11,6 @@
namespace Symfony\Bridge\Doctrine\DataCollector; namespace Symfony\Bridge\Doctrine\DataCollector;
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;
@ -36,10 +35,7 @@ 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

@ -11,7 +11,6 @@
namespace Symfony\Bridge\Doctrine\Form\ChoiceList; namespace Symfony\Bridge\Doctrine\Form\ChoiceList;
use Doctrine\Common\Persistence\ObjectManager as LegacyObjectManager;
use Doctrine\Persistence\ObjectManager; 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;
@ -41,12 +40,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|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
*/ */
public function __construct($manager, string $class, IdReader $idReader = null, EntityLoaderInterface $objectLoader = null) public function __construct(ObjectManager $manager, string $class, IdReader $idReader = null, EntityLoaderInterface $objectLoader = null)
{ {
$classMetadata = $manager->getClassMetadata($class); $classMetadata = $manager->getClassMetadata($class);

View File

@ -11,8 +11,6 @@
namespace Symfony\Bridge\Doctrine\Form\ChoiceList; namespace Symfony\Bridge\Doctrine\Form\ChoiceList;
use Doctrine\Common\Persistence\Mapping\ClassMetadata as LegacyClassMetadata;
use Doctrine\Common\Persistence\ObjectManager as LegacyObjectManager;
use Doctrine\Persistence\Mapping\ClassMetadata; use Doctrine\Persistence\Mapping\ClassMetadata;
use Doctrine\Persistence\ObjectManager; use Doctrine\Persistence\ObjectManager;
use Symfony\Component\Form\Exception\RuntimeException; use Symfony\Component\Form\Exception\RuntimeException;
@ -37,11 +35,7 @@ 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,6 @@
namespace Symfony\Bridge\Doctrine\Form; namespace Symfony\Bridge\Doctrine\Form;
use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Persistence\ManagerRegistry; 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;
@ -20,10 +19,7 @@ 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,14 +11,12 @@
namespace Symfony\Bridge\Doctrine\Form; namespace Symfony\Bridge\Doctrine\Form;
use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Common\Persistence\Mapping\MappingException as LegacyCommonMappingException;
use Doctrine\Common\Persistence\Proxy;
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\ManagerRegistry;
use Doctrine\Persistence\Mapping\MappingException; use Doctrine\Persistence\Mapping\MappingException;
use Doctrine\Persistence\Proxy;
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;
@ -30,10 +28,7 @@ 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;
} }
@ -187,8 +182,6 @@ 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
} }
@ -199,12 +192,10 @@ class DoctrineOrmTypeGuesser implements FormTypeGuesserInterface
private static function getRealClass(string $class): string private static function getRealClass(string $class): string
{ {
$marker = interface_exists(Proxy::class) ? '\\'.Proxy::MARKER.'\\' : '\__CG__\\'; if (false === $pos = strrpos($class, '\\'.Proxy::MARKER.'\\')) {
if (false === $pos = strrpos($class, $marker)) {
return $class; return $class;
} }
return substr($class, $pos + \strlen($marker)); return substr($class, $pos + Proxy::MARKER_LENGTH + 2);
} }
} }

View File

@ -12,8 +12,6 @@
namespace Symfony\Bridge\Doctrine\Form\Type; namespace Symfony\Bridge\Doctrine\Form\Type;
use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Collection;
use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Common\Persistence\ObjectManager as LegacyObjectManager;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\Persistence\ManagerRegistry;
use Doctrine\Persistence\ObjectManager; use Doctrine\Persistence\ObjectManager;
use Symfony\Bridge\Doctrine\Form\ChoiceList\DoctrineChoiceLoader; use Symfony\Bridge\Doctrine\Form\ChoiceList\DoctrineChoiceLoader;
@ -103,10 +101,7 @@ abstract class DoctrineType extends AbstractType implements ResetInterface
return false; return false;
} }
/** public function __construct(ManagerRegistry $registry)
* @param ManagerRegistry|LegacyManagerRegistry $registry
*/
public function __construct($registry)
{ {
$this->registry = $registry; $this->registry = $registry;
} }
@ -197,7 +192,7 @@ abstract class DoctrineType extends AbstractType implements ResetInterface
$emNormalizer = function (Options $options, $em) { $emNormalizer = function (Options $options, $em) {
if (null !== $em) { if (null !== $em) {
if ($em instanceof ObjectManager || $em instanceof LegacyObjectManager) { if ($em instanceof ObjectManager) {
return $em; return $em;
} }
@ -267,7 +262,7 @@ abstract class DoctrineType extends AbstractType implements ResetInterface
$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', ObjectManager::class, LegacyObjectManager::class]); $resolver->setAllowedTypes('em', ['null', 'string', ObjectManager::class]);
} }
/** /**
@ -278,7 +273,7 @@ abstract class DoctrineType extends AbstractType implements ResetInterface
* *
* @return EntityLoaderInterface * @return EntityLoaderInterface
*/ */
abstract public function getLoader(LegacyObjectManager $manager, $queryBuilder, $class); abstract public function getLoader(ObjectManager $manager, $queryBuilder, $class);
public function getParent() public function getParent()
{ {

View File

@ -11,9 +11,9 @@
namespace Symfony\Bridge\Doctrine\Form\Type; namespace Symfony\Bridge\Doctrine\Form\Type;
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 Doctrine\Persistence\ObjectManager;
use Symfony\Bridge\Doctrine\Form\ChoiceList\ORMQueryBuilderLoader; use Symfony\Bridge\Doctrine\Form\ChoiceList\ORMQueryBuilderLoader;
use Symfony\Component\Form\Exception\UnexpectedTypeException; use Symfony\Component\Form\Exception\UnexpectedTypeException;
use Symfony\Component\OptionsResolver\Options; use Symfony\Component\OptionsResolver\Options;
@ -51,7 +51,7 @@ class EntityType extends DoctrineType
* *
* @return ORMQueryBuilderLoader * @return ORMQueryBuilderLoader
*/ */
public function getLoader(LegacyObjectManager $manager, $queryBuilder, $class) public function getLoader(ObjectManager $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 as LegacyAbstractManagerRegistry; use Doctrine\Persistence\AbstractManagerRegistry;
use ProxyManager\Proxy\LazyLoadingInterface; use ProxyManager\Proxy\LazyLoadingInterface;
use Symfony\Component\DependencyInjection\Container; use Symfony\Component\DependencyInjection\Container;
@ -20,7 +20,7 @@ use Symfony\Component\DependencyInjection\Container;
* *
* @author Lukas Kahwe Smith <smith@pooteeweet.org> * @author Lukas Kahwe Smith <smith@pooteeweet.org>
*/ */
abstract class ManagerRegistry extends LegacyAbstractManagerRegistry abstract class ManagerRegistry extends AbstractManagerRegistry
{ {
/** /**
* @var Container * @var Container

View File

@ -11,8 +11,6 @@
namespace Symfony\Bridge\Doctrine\PropertyInfo; namespace Symfony\Bridge\Doctrine\PropertyInfo;
use Doctrine\Common\Persistence\Mapping\ClassMetadataFactory as LegacyClassMetadataFactory;
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\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Mapping\ClassMetadata; use Doctrine\ORM\Mapping\ClassMetadata;
@ -42,7 +40,7 @@ class DoctrineExtractor implements PropertyListExtractorInterface, PropertyTypeE
{ {
if ($entityManager instanceof EntityManagerInterface) { if ($entityManager instanceof EntityManagerInterface) {
$this->entityManager = $entityManager; $this->entityManager = $entityManager;
} elseif ($entityManager instanceof ClassMetadataFactory || $entityManager instanceof LegacyClassMetadataFactory) { } elseif ($entityManager instanceof ClassMetadataFactory) {
@trigger_error(sprintf('Injecting an instance of "%s" in "%s" is deprecated since Symfony 4.2, inject an instance of "%s" instead.', ClassMetadataFactory::class, __CLASS__, EntityManagerInterface::class), E_USER_DEPRECATED); @trigger_error(sprintf('Injecting an instance of "%s" in "%s" is deprecated since Symfony 4.2, inject an instance of "%s" instead.', ClassMetadataFactory::class, __CLASS__, EntityManagerInterface::class), E_USER_DEPRECATED);
$this->classMetadataFactory = $entityManager; $this->classMetadataFactory = $entityManager;
} else { } else {
@ -202,7 +200,7 @@ class DoctrineExtractor implements PropertyListExtractorInterface, PropertyTypeE
{ {
try { try {
return $this->entityManager ? $this->entityManager->getClassMetadata($class) : $this->classMetadataFactory->getMetadataFor($class); return $this->entityManager ? $this->entityManager->getClassMetadata($class) : $this->classMetadataFactory->getMetadataFor($class);
} catch (MappingException | OrmMappingException | LegacyMappingException $exception) { } catch (MappingException | OrmMappingException $exception) {
return null; return null;
} }
} }

View File

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

View File

@ -11,8 +11,10 @@
namespace Symfony\Bridge\Doctrine\Security\User; namespace Symfony\Bridge\Doctrine\Security\User;
use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\Persistence\ManagerRegistry;
use Doctrine\Persistence\Mapping\ClassMetadata;
use Doctrine\Persistence\ObjectManager;
use Doctrine\Persistence\ObjectRepository;
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;
@ -34,10 +36,7 @@ class EntityUserProvider implements UserProviderInterface
private $class; private $class;
private $property; private $property;
/** public function __construct(ManagerRegistry $registry, string $classOrAlias, string $property = null, string $managerName = null)
* @param ManagerRegistry|LegacyManagerRegistry $registry
*/
public function __construct($registry, string $classOrAlias, string $property = null, string $managerName = null)
{ {
$this->registry = $registry; $this->registry = $registry;
$this->managerName = $managerName; $this->managerName = $managerName;
@ -107,17 +106,17 @@ class EntityUserProvider implements UserProviderInterface
return $class === $this->getClass() || is_subclass_of($class, $this->getClass()); return $class === $this->getClass() || is_subclass_of($class, $this->getClass());
} }
private function getObjectManager() private function getObjectManager(): ObjectManager
{ {
return $this->registry->getManager($this->managerName); return $this->registry->getManager($this->managerName);
} }
private function getRepository() private function getRepository(): ObjectRepository
{ {
return $this->getObjectManager()->getRepository($this->classOrAlias); return $this->getObjectManager()->getRepository($this->classOrAlias);
} }
private function getClass() private function getClass(): string
{ {
if (null === $this->class) { if (null === $this->class) {
$class = $this->classOrAlias; $class = $this->classOrAlias;
@ -132,7 +131,7 @@ class EntityUserProvider implements UserProviderInterface
return $this->class; return $this->class;
} }
private function getClassMetadata() private function getClassMetadata(): ClassMetadata
{ {
return $this->getObjectManager()->getClassMetadata($this->classOrAlias); return $this->getObjectManager()->getClassMetadata($this->classOrAlias);
} }

View File

@ -13,8 +13,6 @@ namespace Symfony\Bridge\Doctrine\Test;
use Doctrine\Common\Annotations\AnnotationReader; use Doctrine\Common\Annotations\AnnotationReader;
use Doctrine\Common\Cache\ArrayCache; use Doctrine\Common\Cache\ArrayCache;
use Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain as LegacyMappingDriverChain;
use Doctrine\Common\Persistence\Mapping\Driver\SymfonyFileLocator as LegacySymfonyFileLocator;
use Doctrine\ORM\Configuration; use Doctrine\ORM\Configuration;
use Doctrine\ORM\EntityManager; use Doctrine\ORM\EntityManager;
use Doctrine\ORM\Mapping\Driver\AnnotationDriver; use Doctrine\ORM\Mapping\Driver\AnnotationDriver;
@ -76,13 +74,11 @@ class DoctrineTestHelper
public static function createTestConfigurationWithXmlLoader() public static function createTestConfigurationWithXmlLoader()
{ {
$config = static::createTestConfiguration(); $config = static::createTestConfiguration();
$symfonyFileLocator = class_exists(SymfonyFileLocator::class) ? SymfonyFileLocator::class : LegacySymfonyFileLocator::class;
$driverChain = class_exists(MappingDriverChain::class) ? MappingDriverChain::class : LegacyMappingDriverChain::class;
$driverChain = new $driverChain(); $driverChain = new MappingDriverChain();
$driverChain->addDriver( $driverChain->addDriver(
new XmlDriver( new XmlDriver(
new $symfonyFileLocator( new SymfonyFileLocator(
[__DIR__.'/../Tests/Resources/orm' => 'Symfony\\Bridge\\Doctrine\\Tests\\Fixtures'], '.orm.xml' [__DIR__.'/../Tests/Resources/orm' => 'Symfony\\Bridge\\Doctrine\\Tests\\Fixtures'], '.orm.xml'
) )
), ),

View File

@ -11,7 +11,6 @@
namespace Symfony\Bridge\Doctrine\Test; namespace Symfony\Bridge\Doctrine\Test;
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;
@ -30,7 +29,7 @@ final class TestRepositoryFactory implements RepositoryFactory
/** /**
* {@inheritdoc} * {@inheritdoc}
* *
* @return ObjectRepository|LegacyObjectRepository * @return ObjectRepository
*/ */
public function getRepository(EntityManagerInterface $entityManager, $entityName) public function getRepository(EntityManagerInterface $entityManager, $entityName)
{ {
@ -43,17 +42,14 @@ 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, LegacyObjectRepository $repository) public function setRepository(EntityManagerInterface $entityManager, $entityName, ObjectRepository $repository)
{ {
$repositoryHash = $this->getRepositoryHash($entityManager, $entityName); $repositoryHash = $this->getRepositoryHash($entityManager, $entityName);
$this->repositoryList[$repositoryHash] = $repository; $this->repositoryList[$repositoryHash] = $repository;
} }
/** private function createRepository(EntityManagerInterface $entityManager, string $entityName): ObjectRepository
* @return ObjectRepository|LegacyObjectRepository
*/
private function createRepository(EntityManagerInterface $entityManager, string $entityName)
{ {
/* @var $metadata ClassMetadata */ /* @var $metadata ClassMetadata */
$metadata = $entityManager->getClassMetadata($entityName); $metadata = $entityManager->getClassMetadata($entityName);

View File

@ -11,7 +11,6 @@
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 Doctrine\Persistence\ManagerRegistry;
@ -182,7 +181,7 @@ class DoctrineDataCollectorTest extends TestCase
->method('getDatabasePlatform') ->method('getDatabasePlatform')
->willReturn(new MySqlPlatform()); ->willReturn(new MySqlPlatform());
$registry = $this->getMockBuilder(interface_exists(ManagerRegistry::class) ? ManagerRegistry::class : LegacyManagerRegistry::class)->getMock(); $registry = $this->getMockBuilder(ManagerRegistry::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 as LegacyObjectManager; use Doctrine\Persistence\ObjectManager;
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(LegacyObjectManager $manager) public function load(ObjectManager $manager)
{ {
} }
} }

View File

@ -11,8 +11,6 @@
namespace Symfony\Bridge\Doctrine\Tests\Form\ChoiceList; namespace Symfony\Bridge\Doctrine\Tests\Form\ChoiceList;
use Doctrine\Common\Persistence\ObjectManager as LegacyObjectManager;
use Doctrine\Common\Persistence\ObjectRepository as LegacyObjectRepository;
use Doctrine\ORM\Mapping\ClassMetadata; use Doctrine\ORM\Mapping\ClassMetadata;
use Doctrine\Persistence\ObjectManager; use Doctrine\Persistence\ObjectManager;
use Doctrine\Persistence\ObjectRepository; use Doctrine\Persistence\ObjectRepository;
@ -78,8 +76,8 @@ class DoctrineChoiceLoaderTest extends TestCase
protected function setUp(): void protected function setUp(): void
{ {
$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(interface_exists(ObjectManager::class) ? ObjectManager::class : LegacyObjectManager::class)->getMock(); $this->om = $this->getMockBuilder(ObjectManager::class)->getMock();
$this->repository = $this->getMockBuilder(interface_exists(ObjectRepository::class) ? ObjectRepository::class : LegacyObjectRepository::class)->getMock(); $this->repository = $this->getMockBuilder(ObjectRepository::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()
@ -408,7 +406,7 @@ class DoctrineChoiceLoaderTest extends TestCase
}) })
; ;
$this->om = $this->createMock(interface_exists(ObjectManager::class) ? ObjectManager::class : LegacyObjectManager::class); $this->om = $this->createMock(ObjectManager::class);
$this->om->expects($this->once()) $this->om->expects($this->once())
->method('getClassMetadata') ->method('getClassMetadata')
->with(SingleIntIdEntity::class) ->with(SingleIntIdEntity::class)

View File

@ -11,8 +11,6 @@
namespace Symfony\Bridge\Doctrine\Tests\Form; namespace Symfony\Bridge\Doctrine\Tests\Form;
use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Common\Persistence\ObjectManager as LegacyObjectManager;
use Doctrine\ORM\Mapping\ClassMetadata; use Doctrine\ORM\Mapping\ClassMetadata;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\Persistence\ManagerRegistry;
use Doctrine\Persistence\ObjectManager; use Doctrine\Persistence\ObjectManager;
@ -87,10 +85,10 @@ class DoctrineOrmTypeGuesserTest extends TestCase
private function getGuesser(ClassMetadata $classMetadata) private function getGuesser(ClassMetadata $classMetadata)
{ {
$em = $this->getMockBuilder(interface_exists(ObjectManager::class) ? ObjectManager::class : LegacyObjectManager::class)->getMock(); $em = $this->getMockBuilder(ObjectManager::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(interface_exists(ManagerRegistry::class) ? ManagerRegistry::class : LegacyManagerRegistry::class)->getMock(); $registry = $this->getMockBuilder(ManagerRegistry::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,6 @@
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 Doctrine\Persistence\ManagerRegistry;
use Symfony\Bridge\Doctrine\Form\DoctrineOrmExtension; use Symfony\Bridge\Doctrine\Form\DoctrineOrmExtension;
@ -36,7 +35,7 @@ class EntityTypePerformanceTest extends FormPerformanceTestCase
protected function getExtensions() protected function getExtensions()
{ {
$manager = $this->getMockBuilder(interface_exists(ManagerRegistry::class) ? ManagerRegistry::class : LegacyManagerRegistry::class)->getMock(); $manager = $this->getMockBuilder(ManagerRegistry::class)->getMock();
$manager->expects($this->any()) $manager->expects($this->any())
->method('getManager') ->method('getManager')

View File

@ -12,7 +12,6 @@
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 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;
@ -1229,7 +1228,7 @@ class EntityTypeTest extends BaseTypeTest
protected function createRegistryMock($name, $em) protected function createRegistryMock($name, $em)
{ {
$registry = $this->getMockBuilder(interface_exists(ManagerRegistry::class) ? ManagerRegistry::class : LegacyManagerRegistry::class)->getMock(); $registry = $this->getMockBuilder(ManagerRegistry::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,13 +11,13 @@
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\ManagerRegistry;
use Doctrine\Persistence\ObjectManager; use Doctrine\Persistence\ObjectManager;
use Doctrine\Persistence\ObjectRepository;
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\Security\User\UserLoaderInterface;
use Symfony\Bridge\Doctrine\Test\DoctrineTestHelper; use Symfony\Bridge\Doctrine\Test\DoctrineTestHelper;
use Symfony\Bridge\Doctrine\Tests\Fixtures\User; use Symfony\Bridge\Doctrine\Tests\Fixtures\User;
@ -62,9 +62,7 @@ class EntityUserProviderTest extends TestCase
{ {
$user = new User(1, 1, 'user1'); $user = new User(1, 1, 'user1');
$repository = $this->getMockBuilder('Symfony\Bridge\Doctrine\Security\User\UserLoaderInterface') $repository = $this->createMock([ObjectRepository::class, UserLoaderInterface::class]);
->disableOriginalConstructor()
->getMock();
$repository $repository
->expects($this->once()) ->expects($this->once())
->method('loadUserByUsername') ->method('loadUserByUsername')
@ -150,7 +148,7 @@ class EntityUserProviderTest extends TestCase
public function testLoadUserByUserNameShouldLoadUserWhenProperInterfaceProvided() public function testLoadUserByUserNameShouldLoadUserWhenProperInterfaceProvided()
{ {
$repository = $this->getMockBuilder('\Symfony\Bridge\Doctrine\Security\User\UserLoaderInterface')->getMock(); $repository = $this->createMock([ObjectRepository::class, UserLoaderInterface::class]);
$repository->expects($this->once()) $repository->expects($this->once())
->method('loadUserByUsername') ->method('loadUserByUsername')
->with('name') ->with('name')
@ -169,7 +167,7 @@ class EntityUserProviderTest extends TestCase
public function testLoadUserByUserNameShouldDeclineInvalidInterface() public function testLoadUserByUserNameShouldDeclineInvalidInterface()
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
$repository = $this->getMockBuilder('\Symfony\Component\Security\Core\User\AdvancedUserInterface')->getMock(); $repository = $this->createMock(ObjectRepository::class);
$provider = new EntityUserProvider( $provider = new EntityUserProvider(
$this->getManager($this->getObjectManager($repository)), $this->getManager($this->getObjectManager($repository)),
@ -181,7 +179,7 @@ class EntityUserProviderTest extends TestCase
private function getManager($em, $name = null) private function getManager($em, $name = null)
{ {
$manager = $this->getMockBuilder(interface_exists(ManagerRegistry::class) ? ManagerRegistry::class : LegacyManagerRegistry::class)->getMock(); $manager = $this->getMockBuilder(ManagerRegistry::class)->getMock();
$manager->expects($this->any()) $manager->expects($this->any())
->method('getManager') ->method('getManager')
->with($this->equalTo($name)) ->with($this->equalTo($name))
@ -192,7 +190,7 @@ class EntityUserProviderTest extends TestCase
private function getObjectManager($repository) private function getObjectManager($repository)
{ {
$em = $this->getMockBuilder(interface_exists(ObjectManager::class) ? ObjectManager::class : LegacyObjectManager::class) $em = $this->getMockBuilder(ObjectManager::class)
->setMethods(['getClassMetadata', 'getRepository']) ->setMethods(['getClassMetadata', 'getRepository'])
->getMockForAbstractClass(); ->getMockForAbstractClass();
$em->expects($this->any()) $em->expects($this->any())

View File

@ -12,10 +12,6 @@
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 as LegacyManagerRegistry;
use Doctrine\Common\Persistence\Mapping\ClassMetadata as LegacyClassMetadata;
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\ManagerRegistry;
@ -83,7 +79,7 @@ class UniqueEntityValidatorTest extends ConstraintValidatorTestCase
protected function createRegistryMock($em = null) protected function createRegistryMock($em = null)
{ {
$registry = $this->getMockBuilder(interface_exists(ManagerRegistry::class) ? ManagerRegistry::class : LegacyManagerRegistry::class)->getMock(); $registry = $this->getMockBuilder(ManagerRegistry::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))
@ -94,7 +90,7 @@ class UniqueEntityValidatorTest extends ConstraintValidatorTestCase
protected function createRepositoryMock() protected function createRepositoryMock()
{ {
$repository = $this->getMockBuilder(interface_exists(ObjectRepository::class) ? ObjectRepository::class : LegacyObjectRepository::class) $repository = $this->getMockBuilder(ObjectRepository::class)
->setMethods(['findByCustom', 'find', 'findAll', 'findOneBy', 'findBy', 'getClassName']) ->setMethods(['findByCustom', 'find', 'findAll', 'findOneBy', 'findBy', 'getClassName'])
->getMock() ->getMock()
; ;
@ -104,7 +100,7 @@ class UniqueEntityValidatorTest extends ConstraintValidatorTestCase
protected function createEntityManagerMock($repositoryMock) protected function createEntityManagerMock($repositoryMock)
{ {
$em = $this->getMockBuilder(interface_exists(ObjectManager::class) ? ObjectManager::class : LegacyObjectManager::class) $em = $this->getMockBuilder(ObjectManager::class)
->getMock() ->getMock()
; ;
$em->expects($this->any()) $em->expects($this->any())
@ -112,7 +108,7 @@ class UniqueEntityValidatorTest extends ConstraintValidatorTestCase
->willReturn($repositoryMock) ->willReturn($repositoryMock)
; ;
$classMetadata = $this->getMockBuilder(interface_exists(ClassMetadata::class) ? ClassMetadata::class : LegacyClassMetadata::class)->getMock(); $classMetadata = $this->getMockBuilder(ClassMetadata::class)->getMock();
$classMetadata $classMetadata
->expects($this->any()) ->expects($this->any())
->method('hasField') ->method('hasField')

View File

@ -11,7 +11,6 @@
namespace Symfony\Bridge\Doctrine\Validator\Constraints; namespace Symfony\Bridge\Doctrine\Validator\Constraints;
use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\ConstraintValidator;
@ -27,10 +26,7 @@ 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;
} }

View File

@ -11,7 +11,6 @@
namespace Symfony\Bridge\Doctrine\Validator; namespace Symfony\Bridge\Doctrine\Validator;
use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\Validator\ObjectInitializerInterface; use Symfony\Component\Validator\ObjectInitializerInterface;
@ -24,10 +23,7 @@ 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

@ -18,7 +18,7 @@
"require": { "require": {
"php": "^7.1.3", "php": "^7.1.3",
"doctrine/event-manager": "~1.0", "doctrine/event-manager": "~1.0",
"doctrine/persistence": "~1.0", "doctrine/persistence": "^1.3",
"symfony/polyfill-ctype": "~1.8", "symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-mbstring": "~1.0",
"symfony/service-contracts": "^1.1" "symfony/service-contracts": "^1.1"

View File

@ -11,7 +11,6 @@
namespace Symfony\Bundle\FrameworkBundle\Controller; namespace Symfony\Bundle\FrameworkBundle\Controller;
use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\Persistence\ManagerRegistry;
use Psr\Container\ContainerInterface; use Psr\Container\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
@ -83,7 +82,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' => '?'.(interface_exists(ManagerRegistry::class) ? ManagerRegistry::class : LegacyManagerRegistry::class), 'doctrine' => '?'.ManagerRegistry::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,6 @@
namespace Symfony\Bundle\FrameworkBundle\Controller; namespace Symfony\Bundle\FrameworkBundle\Controller;
use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\Persistence\ManagerRegistry;
use Fig\Link\GenericLinkProvider; use Fig\Link\GenericLinkProvider;
use Fig\Link\Link; use Fig\Link\Link;
@ -337,7 +336,7 @@ trait ControllerTrait
/** /**
* Shortcut to return the Doctrine Registry service. * Shortcut to return the Doctrine Registry service.
* *
* @return ManagerRegistry|LegacyManagerRegistry * @return ManagerRegistry
* *
* @throws \LogicException If DoctrineBundle is not available * @throws \LogicException If DoctrineBundle is not available
* *

View File

@ -12,7 +12,6 @@
namespace Symfony\Bundle\FrameworkBundle\Tests\Controller; namespace Symfony\Bundle\FrameworkBundle\Tests\Controller;
use Psr\Container\ContainerInterface; use Psr\Container\ContainerInterface;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\DependencyInjection\Container; use Symfony\Component\DependencyInjection\Container;
use Symfony\Component\DependencyInjection\ParameterBag\ContainerBag; use Symfony\Component\DependencyInjection\ParameterBag\ContainerBag;
@ -40,7 +39,7 @@ class AbstractControllerTest extends ControllerTraitTest
'security.authorization_checker' => '?Symfony\\Component\\Security\\Core\\Authorization\\AuthorizationCheckerInterface', 'security.authorization_checker' => '?Symfony\\Component\\Security\\Core\\Authorization\\AuthorizationCheckerInterface',
'templating' => '?Symfony\\Component\\Templating\\EngineInterface', 'templating' => '?Symfony\\Component\\Templating\\EngineInterface',
'twig' => '?Twig\\Environment', 'twig' => '?Twig\\Environment',
'doctrine' => interface_exists(ManagerRegistry::class) ? '?'.ManagerRegistry::class : '?Doctrine\\Common\\Persistence\\ManagerRegistry', 'doctrine' => '?Doctrine\\Persistence\\ManagerRegistry',
'form.factory' => '?Symfony\\Component\\Form\\FormFactoryInterface', 'form.factory' => '?Symfony\\Component\\Form\\FormFactoryInterface',
'parameter_bag' => '?Symfony\\Component\\DependencyInjection\\ParameterBag\\ContainerBagInterface', 'parameter_bag' => '?Symfony\\Component\\DependencyInjection\\ParameterBag\\ContainerBagInterface',
'message_bus' => '?Symfony\\Component\\Messenger\\MessageBusInterface', 'message_bus' => '?Symfony\\Component\\Messenger\\MessageBusInterface',

View File

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

View File

@ -64,6 +64,7 @@
"twig/twig": "~1.41|~2.10" "twig/twig": "~1.41|~2.10"
}, },
"conflict": { "conflict": {
"doctrine/persistence": "<1.3",
"phpdocumentor/reflection-docblock": "<3.0", "phpdocumentor/reflection-docblock": "<3.0",
"phpdocumentor/type-resolver": "<0.2.1", "phpdocumentor/type-resolver": "<0.2.1",
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",