Skip to content

ControllerMethodInjectionToConstructorRector treats private properties as if they're inherited #9696

@Andrew-Staves-Activ

Description

@Andrew-Staves-Activ

Bug Report

Subject Details
Rector version last dev-main
Installed as composer dependency

Minimal PHP Code Causing Issue

See https://getrector.com/demo/071564cb-91f6-442c-9b3f-58cbccd48d50

<?php

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class ParentController extends AbstractController
{
    public function __construct(private readonly Foo $foo)
    {
    }
}

class ChildController extends ParentController
{
    public function example(Foo $foo): Response
    {
        dump($foo);
    }
}

Responsible rules

  • ControllerMethodInjectionToConstructorRector

Expected Behaviour

<?php

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class ParentController extends AbstractController
{
    public function __construct(private readonly Foo $foo)
    {
    }
}

class ChildController extends ParentController
{
+    public function __construct(private readonly Foo $foo)
+    {
+    }
+
-    public function example(Foo $foo): Response
+    public function example(): Response
    {
-        dump($foo);
+        dump($this->foo);
    }
 }

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions