【问题标题】:How can I get fully-classified class name in PHPStorm's Code Completion?如何在 PHPStorm 的代码完成中获得完全分类的类名?
【发布时间】:2013-09-23 04:20:12
【问题描述】:

我是 PHPStorm 新手,想问一下如何使用代码完成(Command+Space)获得完全分类的类名(类的绝对路径)?

例如,我的代码中有一个函数:

<?php

namespace A;
use C\D\Class;

/**
 * @return Class (what PHPStorm suggests)
 * @return \C\D\Class (what I need)
 */
function foo() {
  return new Class();
}
?>

此函数返回 \C\D\Class 的实例 在为这个函数生成 docblock 时,我使用 Command+Space 将类名放在 @return 关键字之后。 PHPStorm 在扩展列表中建议 Class,但是当我选择必要的类时,它只放置“Class”而不是“\C\D\Class”。

我该如何解决?

提前致谢。

【问题讨论】:

    标签: namespaces phpstorm


    【解决方案1】:

    我也有同样的问题。 其实这很简单,但我也没有找到选项。它隐藏得很好。

    打开设置并转到:

    IDE 设置 -> 编辑器 -> 自动导入

    您会在此处找到“在命名空间范围内启用自动导入”复选框。取消选中它,命名空间将不再使用“use”关键字缩短。

    但是现在 PhpStorm 会告诉你没有必要使用完整的命名空间。为了避免这种情况,只需禁用检查“不必要的完全限定名称”。

    您仍然可以告诉 PhpStorm 导入当前类的命名空间。对我来说,它只是用光标标记班级并按 ALT+ENTER。然后出现这个对话框:

    当我使用 ENTER 确认时,该类的命名空间将被导入并缩短:

    【讨论】:

    • 我猜这取决于您的按键设置。可能我没有使用 phpstorm 默认值(从 netbeans 移动到 phpstorm)
    • 截至 2017 年(至少在 Mac 上)该选项可以在编辑器 -> 常规 -> 自动导入中找到
    • 顺便说一句。现在,我总是在导入命名空间。它不仅使代码更易于阅读,而且还显示 - 在普通 php 文件的顶部 - 对其他类和第三方供应商的所有依赖项。
    【解决方案2】:

    目前唯一的方法是开始输入\C\D\Cla,然后完成。如果这不是您想要的,请随时在Issue Tracker 上创建可用性问题。

    【讨论】:

      最近更新 更多