在PhpStorm中,如果我创建一个对象,那么我对该对象的所有自动完成工作正常:
$object = new MyClass();
$object->getNa...
将自动完成
$object->getName();
到目前为止一切都那么好,但是如果我通过第一种方法返回一个对象,那么自动完成将无法使用。
$car->getDriver()->getNam...
将显示一个空列表。 getDriver方法将其PHPDoc @return标记设置为“Driver”,但在其他一些IDE中,这样可以获得正确的自动完成。
想知道我是否错过某个设置或者PhpStorm是否提供此类高级自动完成功能?
答案 0 :(得分:9)
函数getDriver()
需要适当的返回值类型提示(函数的docblock):
* @return classOrInterfaceName
这通常足以让IDE“更深入”。我很确定Phpstorm支持这一点,但我不是一个Phpstorm用户。
注意带有接口/类的文件在项目中或引用它。
作为一种解决方法,您可以将返回值分配给变量,并键入提示该变量。可能不那么舒服但可以提供帮助。
答案 1 :(得分:3)
请确保在所有项目文件中只存在一个类驱动程序的定义。这对当前版本的PhpStorm
至关重要请参阅http://youtrack.jetbrains.net/issue/WI-2202和http://youtrack.jetbrains.net/issue/WI-2760