From e57c72499ca0e9cd4b70478e2a8807b7cf994826 Mon Sep 17 00:00:00 2001 From: Jeroen Thora Date: Fri, 10 Apr 2020 12:09:45 +0200 Subject: [PATCH] Add extra allowed interface to EntityAliasToClassConstantReferenceRector --- ...ityAliasToClassConstantReferenceRector.php | 18 ++++++++--- .../Fixture/fixture3.php.inc | 31 +++++++++++++++++++ 2 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 rules/doctrine/tests/Rector/MethodCall/EntityAliasToClassConstantReferenceRector/Fixture/fixture3.php.inc diff --git a/rules/doctrine/src/Rector/MethodCall/EntityAliasToClassConstantReferenceRector.php b/rules/doctrine/src/Rector/MethodCall/EntityAliasToClassConstantReferenceRector.php index aea647bccccf..32a9d65354dd 100644 --- a/rules/doctrine/src/Rector/MethodCall/EntityAliasToClassConstantReferenceRector.php +++ b/rules/doctrine/src/Rector/MethodCall/EntityAliasToClassConstantReferenceRector.php @@ -4,8 +4,10 @@ namespace Rector\Doctrine\Rector\MethodCall; +use Doctrine\Common\Persistence\ManagerRegistry as DeprecatedManagerRegistry; use Doctrine\Common\Persistence\ObjectManager as DeprecatedObjectManager; use Doctrine\ORM\EntityManagerInterface; +use Doctrine\Persistence\ManagerRegistry; use Doctrine\Persistence\ObjectManager; use Nette\Utils\Strings; use PhpParser\Node; @@ -20,6 +22,17 @@ */ final class EntityAliasToClassConstantReferenceRector extends AbstractRector { + /** + * @var string[] + */ + private const ALLOWED_OBJECT_TYPES = [ + EntityManagerInterface::class, + ObjectManager::class, + DeprecatedObjectManager::class, + ManagerRegistry::class, + DeprecatedManagerRegistry::class, + ]; + /** * @var string[] */ @@ -63,10 +76,7 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Node { - if (! $this->isObjectTypes( - $node->var, - [EntityManagerInterface::class, ObjectManager::class, DeprecatedObjectManager::class] - )) { + if (! $this->isObjectTypes($node->var, self::ALLOWED_OBJECT_TYPES)) { return null; } diff --git a/rules/doctrine/tests/Rector/MethodCall/EntityAliasToClassConstantReferenceRector/Fixture/fixture3.php.inc b/rules/doctrine/tests/Rector/MethodCall/EntityAliasToClassConstantReferenceRector/Fixture/fixture3.php.inc new file mode 100644 index 000000000000..3e3bf26b9c19 --- /dev/null +++ b/rules/doctrine/tests/Rector/MethodCall/EntityAliasToClassConstantReferenceRector/Fixture/fixture3.php.inc @@ -0,0 +1,31 @@ +getDoctrine()->getRepository('App:Post'); + } +} + +?> +----- +getDoctrine()->getRepository(\App\Entity\Post::class); + } +} + +?>