From 39270316e0160e26fa3150d224e8f4d14367d6e9 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Sat, 22 Feb 2025 00:07:55 +0700 Subject: [PATCH] [Attribute] Add CoversTrait support on CoversAnnotationWithValueToAttributeRector --- .../Fixture/covers_trait.php.inc | 33 +++++++++++++++++++ .../Source/ExistingTrait.php | 19 +++++++++++ ...rsAnnotationWithValueToAttributeRector.php | 14 ++++++++ 3 files changed, 66 insertions(+) create mode 100644 rules-tests/AnnotationsToAttributes/Rector/Class_/CoversAnnotationWithValueToAttributeRector/Fixture/covers_trait.php.inc create mode 100644 rules-tests/AnnotationsToAttributes/Rector/Class_/CoversAnnotationWithValueToAttributeRector/Source/ExistingTrait.php diff --git a/rules-tests/AnnotationsToAttributes/Rector/Class_/CoversAnnotationWithValueToAttributeRector/Fixture/covers_trait.php.inc b/rules-tests/AnnotationsToAttributes/Rector/Class_/CoversAnnotationWithValueToAttributeRector/Fixture/covers_trait.php.inc new file mode 100644 index 00000000..b73915a5 --- /dev/null +++ b/rules-tests/AnnotationsToAttributes/Rector/Class_/CoversAnnotationWithValueToAttributeRector/Fixture/covers_trait.php.inc @@ -0,0 +1,33 @@ + +----- + diff --git a/rules-tests/AnnotationsToAttributes/Rector/Class_/CoversAnnotationWithValueToAttributeRector/Source/ExistingTrait.php b/rules-tests/AnnotationsToAttributes/Rector/Class_/CoversAnnotationWithValueToAttributeRector/Source/ExistingTrait.php new file mode 100644 index 00000000..c9bf4548 --- /dev/null +++ b/rules-tests/AnnotationsToAttributes/Rector/Class_/CoversAnnotationWithValueToAttributeRector/Source/ExistingTrait.php @@ -0,0 +1,19 @@ +getClass($annotationValue) . '::class', $this->getMethod($annotationValue)]; } else { $attributeClass = self::COVERTS_CLASS_ATTRIBUTE; + + if ($this->reflectionProvider->hasClass($annotationValue)) { + $classReflection = $this->reflectionProvider->getClass($annotationValue); + + if ($classReflection->isTrait()) { + $attributeClass = self::COVERTS_TRAIT_ATTRIBUTE; + } + } + $attributeValue = [trim($annotationValue) . '::class']; }