首页 > 解决方案 > PhpStorm:如何生成具有所有父属性和子属性的构造函数

问题描述

有几个类:

abstract class AbstractBase
{
    protected Service1 $service1;

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

class Child extends AbstractBase
{
    private Service2 $service2;
}

如果我按Alt + Insert(for child class) 并选择Constructor,PhpStorm 将只显示来自子类的属性。如何同时生成构造函数:子类和父类,像这样?

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

标签: phpphpstorm

解决方案


如何同时生成构造函数:子类和父类

目前是不可能的。

https://youtrack.jetbrains.com/issue/WI-40676 - 观看这张票(star/vote/comment)以获得任何进展的通知。


我现在能建议的最好的是:

  • Code | Generate...菜单中(Alt + Insert在 Windows 键盘映射上)使用Override Methods...选项代替。
  • 然后选择__construct()。它将创建与父类相同的方法。
  • 然后,您可以将插入符号移至该private Service2 $service2;行,将其放在 上$service2,调用Alt + Enter菜单,然后选择Add constructor parameters条目。

推荐阅读