7

在 PhpStorm 中,如果我创建一个对象,那么我会在该对象上自动完成所有工作正常:

$object = new MyClass();
$object->getNa...

将自动完成

$object->getName();

到目前为止一切都很好,但是如果我通过第一种方法返回了一个对象,那么自动完成将无法正常工作。

$car->getDriver()->getNam...

将显示一个空列表。getDriver 方法将其 PHPDoc @return 标记设置为“Driver”,但在其他一些 IDE 中,这可以实现正确的自动完成。

想知道我是否在某处遗漏了某个设置,或者 PhpStorm 是否还没有提供这种高级自动完成功能?

4

2 回答 2

8

该函数getDriver()需要适当的返回值类型提示(函数的文档块):

  * @return classOrInterfaceName

这通常足以让 IDE “更深入”。我很确定 Phpstorm 支持这一点,但我不是 Phpstorm 用户。

注意带有接口/类的文件在项目中或被它引用。

作为一种解决方法,您可以将返回值分配给一个变量并对该变量进行类型提示。可能不是那么舒服,但可以提供帮助。

于 2011-10-01T11:08:46.947 回答
3

请确保在所有项目文件中只存在一个类 Driver 的定义。这对于当前版本的 PhpStorm 至关重要

http://youtrack.jetbrains.net/issue/WI-2202http://youtrack.jetbrains.net/issue/WI-2760

于 2011-10-05T13:38:38.060 回答