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 应用这些步骤:
- 点击变量。 不要标记它!
- 右击。
Refactor
| Introduce 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 应用这些步骤:
- 点击变量。 不要标记它!
- 右击。
Refactor
|Introduce Field