PhpStorm 2025.2 Help

提取类

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

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

  2. 转到 重构 | 提取/引入 | 提取类 或按 Ctrl+Alt+Shift+T ,然后在弹出菜单中选择 提取类

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

    PhpStorm。 提取类重构
  4. 预览您的更改,然后点击 确定

提取类示例

在以下示例中, bar 方法从 Source 类中提取到一个新的 目标 类中。 在重构过程中,将发生以下情况:

  • PhpStorm 创建一个新的类 目标 ,并将 bar 方法的实现移到此类中。

  • 目标 类的一个实例通过构造函数注入到 Source 中。

  • 为了提供对私有属性 foo 的访问,在 Source 类中生成了 get_foo getter 方法。 这是通过启用 生成访问器 选项 在“提取到类”对话框中 实现的。

  • (new Source())->bar() 方法调用未发生变化,但实际执行现在被委托给 目标 类的 bar 方法。

class Source { private $foo; public function bar() { echo $this->foo; } } (new Source())->bar();
class Source { private $foo; /** @var \Target */ private $target; public function __construct() { $this->target = new \Target($this); } public function bar() { $this->target->bar(); } public function get_foo() { return $this->foo; } } class Target { private $source; public function __construct(Source $source) { $this->source = $source; } public function bar() { echo $this->source->get_foo(); } } (new Source())->bar();
最后修改日期: 2025年 9月 26日