diff --git a/packages/Symfony/src/Rector/FrameworkBundle/GetToConstructorInjectionRector.php b/packages/Symfony/src/Rector/FrameworkBundle/GetToConstructorInjectionRector.php index ee476ad5c48..8faa9abbf6f 100644 --- a/packages/Symfony/src/Rector/FrameworkBundle/GetToConstructorInjectionRector.php +++ b/packages/Symfony/src/Rector/FrameworkBundle/GetToConstructorInjectionRector.php @@ -14,9 +14,17 @@ final class GetToConstructorInjectionRector extends AbstractToConstructorInjecti */ private $controllerClass; - public function __construct(string $controllerClass = 'Symfony\Bundle\FrameworkBundle\Controller\Controller') - { + /** + * @var string + */ + private $traitClass; + + public function __construct( + string $controllerClass = 'Symfony\Bundle\FrameworkBundle\Controller\Controller', + string $traitClass = 'Symfony\Bundle\FrameworkBundle\Controller\ControllerTrait' + ) { $this->controllerClass = $controllerClass; + $this->traitClass = $traitClass; } public function getDefinition(): RectorDefinition @@ -61,6 +69,10 @@ CODE_SAMPLE return false; } - return $this->methodCallAnalyzer->isTypeAndMethod($node, $this->controllerClass, 'get'); + if ($this->methodCallAnalyzer->isTypeAndMethod($node, $this->controllerClass, 'get')) { + return true; + } + + return $this->methodCallAnalyzer->isTypeAndMethod($node, $this->traitClass, 'get'); } } diff --git a/packages/Symfony/tests/Rector/FrameworkBundle/GetToConstructorInjectionRector/Correct/correct3.php.inc b/packages/Symfony/tests/Rector/FrameworkBundle/GetToConstructorInjectionRector/Correct/correct3.php.inc new file mode 100644 index 00000000000..69de8198e59 --- /dev/null +++ b/packages/Symfony/tests/Rector/FrameworkBundle/GetToConstructorInjectionRector/Correct/correct3.php.inc @@ -0,0 +1,21 @@ +someTranslator = $someTranslator; + } + + public function render() + { + $this->someTranslator; + } +} diff --git a/packages/Symfony/tests/Rector/FrameworkBundle/GetToConstructorInjectionRector/GetToConstructorInjectionRectorTest.php b/packages/Symfony/tests/Rector/FrameworkBundle/GetToConstructorInjectionRector/GetToConstructorInjectionRectorTest.php index f06ac6e4f82..f9fcca9f4f1 100644 --- a/packages/Symfony/tests/Rector/FrameworkBundle/GetToConstructorInjectionRector/GetToConstructorInjectionRectorTest.php +++ b/packages/Symfony/tests/Rector/FrameworkBundle/GetToConstructorInjectionRector/GetToConstructorInjectionRectorTest.php @@ -29,6 +29,7 @@ final class GetToConstructorInjectionRectorTest extends AbstractRectorTestCase { yield [__DIR__ . '/Wrong/wrong.php.inc', __DIR__ . '/Correct/correct.php.inc']; yield [__DIR__ . '/Wrong/wrong2.php.inc', __DIR__ . '/Correct/correct2.php.inc']; + yield [__DIR__ . '/Wrong/wrong3.php.inc', __DIR__ . '/Correct/correct3.php.inc']; } protected function provideConfig(): string diff --git a/packages/Symfony/tests/Rector/FrameworkBundle/GetToConstructorInjectionRector/Source/GetTrait.php b/packages/Symfony/tests/Rector/FrameworkBundle/GetToConstructorInjectionRector/Source/GetTrait.php new file mode 100644 index 00000000000..537f7b266a5 --- /dev/null +++ b/packages/Symfony/tests/Rector/FrameworkBundle/GetToConstructorInjectionRector/Source/GetTrait.php @@ -0,0 +1,13 @@ +get('translator'); + } +} diff --git a/packages/Symfony/tests/Rector/FrameworkBundle/GetToConstructorInjectionRector/config.yml b/packages/Symfony/tests/Rector/FrameworkBundle/GetToConstructorInjectionRector/config.yml index b97090fb8cb..54b7c462082 100644 --- a/packages/Symfony/tests/Rector/FrameworkBundle/GetToConstructorInjectionRector/config.yml +++ b/packages/Symfony/tests/Rector/FrameworkBundle/GetToConstructorInjectionRector/config.yml @@ -4,3 +4,4 @@ parameters: services: Rector\Symfony\Rector\FrameworkBundle\GetToConstructorInjectionRector: $controllerClass: 'Rector\Symfony\Tests\Rector\Source\SymfonyController' + $traitClass: 'Rector\Symfony\Tests\Rector\FrameworkBundle\GetToConstructorInjectionRector\Source\GetTrait'