如何在PHPStorm的代码完成中获得完全分类的类名?

时间:2013-09-23 04:20:12

标签: namespaces phpstorm

我是PHPStorm的新手,想问一下如何使用Code Completion(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”。

我该如何解决?

提前致谢。

2 个答案:

答案 0 :(得分:25)

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

打开设置并转到:

IDE设置 - &gt;编辑 - &gt;自动导入

Settings dialog in PhpStorm

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

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

Inspections in settings dialog in PhpStorm

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

Import class dialog

当我用ENTER确认时,此类的名称空间将被导入并缩短: Shorten class name

答案 1 :(得分:0)

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