PhpStorm: как сгенерировать конструктор со всеми родительскими свойствами и потомком - PullRequest
0 голосов
/ 09 июля 2020

Есть несколько классов:

abstract class AbstractBase
{
    protected Service1 $service1;

    public function __construct(Serivice1 $s)
    {
        $this->service1 = $s;
    }
}

class Child extends AbstractBase
{
    private Service2 $service2;
}

Если я нажму Alt + Insert (для дочернего класса) и выберу Constructor, PhpStorm покажет мне только свойства из дочернего класса. Как сгенерировать конструктор как с дочерним, так и с родительским классами, вот так?

public function __construct(Service1 $service1, Service2 $service2)
{
    parent::__construct($service1);
    $this->service2 = $service2;
}

1 Ответ

1 голос
/ 09 июля 2020

Как создать конструктор с дочерним и родительским классами

В настоящее время это невозможно.

https://youtrack.jetbrains.com/issue/WI-40676 - посмотрите это билет (звезда / голос / комментарий), чтобы получать уведомления о любом прогрессе.

Лучшее, что я могу предложить прямо сейчас:

  • В меню Code | Generate... ( Alt + Insert на Windows раскладке клавиатуры) используйте вместо этого параметр Override Methods....
  • Затем выберите __construct(). Он создаст тот же метод, что и родительский класс.
  • Затем вы можете переместить курсор в строку private Service2 $service2;, поместить его в $service2, вызвать меню Alt + Enter и затем выбрать Add constructor parameters запись.
...