From b229dedbbfb6c216bce7f8715fa429905ee0765c Mon Sep 17 00:00:00 2001 From: Filippo Tessarotto Date: Tue, 31 May 2022 11:54:15 +0200 Subject: [PATCH] [FinalInternalClassFixer] Fix Entities with Repo (#18) --- lib/FinalInternalClassFixer.php | 9 ++++----- tests/FinalInternalClassFixerTest.php | 6 ++++++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/FinalInternalClassFixer.php b/lib/FinalInternalClassFixer.php index 5eacd54..e56ad68 100644 --- a/lib/FinalInternalClassFixer.php +++ b/lib/FinalInternalClassFixer.php @@ -14,6 +14,8 @@ final class FinalInternalClassFixer extends AbstractFixer { + private const REGEX = '(?:final|\\\\Doctrine\\\\ORM\\\\Mapping\\\\Entity|ORM\\\\Mapping\\\\Entity|ORM\\\\Entity|Entity)'; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -65,7 +67,7 @@ protected function applyFix(SplFileInfo $file, Tokens $tokens): void private static function isDoctrineEntity(Tokens $tokens, int $classIndex): bool { $docToken = $tokens[$tokens->getPrevNonWhitespace($classIndex)]; - if ($docToken->isGivenKind(\T_DOC_COMMENT) && false !== \mb_strpos($docToken->getContent(), '@ORM\Entity')) { + if ($docToken->isGivenKind(\T_DOC_COMMENT) && 1 === \preg_match(\sprintf('/@%s/', self::REGEX), $docToken->getContent())) { return true; } @@ -76,10 +78,7 @@ private static function isDoctrineEntity(Tokens $tokens, int $classIndex): bool for ($index = $attributeOpenIndex; $index < $classIndex; ++$index) { $content .= $tokens[$index]->getContent(); } - if (false !== \mb_strpos($content, '#[ORM\Entity]')) { - return true; - } - if (false !== \mb_strpos($content, '#[\Doctrine\ORM\Mapping\Entity')) { + if (1 === \preg_match(\sprintf('/^#\[%s/', self::REGEX), $content)) { return true; } diff --git a/tests/FinalInternalClassFixerTest.php b/tests/FinalInternalClassFixerTest.php index 58527d4..e2cfa9c 100644 --- a/tests/FinalInternalClassFixerTest.php +++ b/tests/FinalInternalClassFixerTest.php @@ -42,12 +42,18 @@ public function provideCases(): array [ "