PhpStorm 将局部变量重构为 class 字段

PhpStorm refactor local variable to class field

就像主题一样,我想将局部变量重构为 class 字段。

我在想两种方法:

一个。快速简单:
我想将变量名从 $var 重构为 $this->var.

乙。加长版:

来自:

class x {
    function y() {
        $var = new targetClass;
    }
}

至:

class x {
    /** @var targetClass $var */ // version C, optional
    (public|protected|private) $var;
    function y() {
        $this->var = new targetClass;
    }
}

无法执行任何操作,当我尝试重构 $var 时,只需将其重构为 $this->var,我最终得到一条消息:

Inserted identifier is invalid

首先定义 $this->var 也无济于事。

我发现的唯一解决方法是键入 $this->var,松散地关注重构变量,键入任何内容并将其删除。然后 PhpStorm 被欺骗并更改变量。它简单的脏覆盖方法 A.

Select 变量并右击。选择 Refactor->Extract->Field。输入您不需要的字段名称。

现在使用 PhpStorm 2021.x 应用这些步骤:

  1. 点击变量。 不要标记它!
  2. 右击。
  3. Refactor | Introduce Field