PhpStorm 2021.3 Help

提取类

PhpStorm 允许您使用将类方法和属性提取到新类中的重构。当一个类变得太大并且“做了太多事情”时,这些重构很有用。在这种情况下,将类拆分为更小、更有凝聚力的类可能是个好主意。此外,您可以将php文件中定义的函数提取到新类中。这对于将相关功能分组到实用程序类中、避免非命名空间方法的冲突或以面向对象的方式表示您的代码库可能很有用。

  1. 将插入符号放置在要提取到类中的代码片段上。您可以提取 PHP 类属性和方法以及独立函数。

  2. 从主菜单中,选择重构 | 提取物 | 提取类或按Ctrl+Alt+Shift+T并在弹出菜单中选择提取类

  3. 在打开的对话框中,指定目标命名空间和目标目录、新类的所需名称以及要提取的类成员或独立函数。要为类的字段生成访问器和修改器方法(getter 和 setter),请选中Generate accessors复选框。

    PhpStorm。 提取类重构
  4. 预览您的更改并单击OK

提取类示例

在下面的示例中,bar方法从Source类中提取到一个新Target类中。在重构期间,会发生以下情况:

  • PhpStorm 创建一个新类Target并将bar方法的实现移动到该类中。

  • 类的实例通过构造函数Target注入。Source

  • 为了提供对私有属性foo的访问,get_foogetter 方法在Source类中生成。这是通过在 Extract To Class 对话框中启用Generate accessors选项来实现的。

  • (new Source())->bar()方法调用没有改变,但实际执行现在委托给类的bar方法Target

类来源 { 私人 $foo; 公共函数 bar() { echo $this->foo; } } (new Source())->bar();
类来源 { 私人 $foo; /** @var \Target */ private $target; 公共函数 __construct() { $this->target = new \Target($this); } 公共函数 bar() { $this->target->bar(); } 公共函数 get_foo() { 返回 $this->foo; } } 类目标 { 私有 $source; 公共函数 __construct(Source $source) { $this->source = $source; } 公共函数 bar() { echo $this->source->get_foo(); } } (new Source())->bar();
最后修改时间:2021 年 8 月 26 日