有没有办法让 PhpStorm 的自动完成“更深入”?

发布于 2024-12-07 06:51:12 字数 443 浏览 0 评论 0原文

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

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

将自动完成到

$object->getName();

到目前为止一切顺利,但如果我通过第一个方法返回一个对象,则自动完成将不起作用那。

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

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

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

In PhpStorm, if I create an object, then I have all auto complete on that object working fine:

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

Will auto complete to

$object->getName();

So far so good, but if I get returned an object through the first method, then the auto complete will not work on that.

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

Will show an empty list.
The getDriver method has its PHPDoc @return tag set to 'Driver' though and in some other IDEs, this therefore works to get the correct auto complete.

Wondering if there's a setting that I missed somewhere or if PhpStorm doesn't offer this kind of advanced auto complete yet?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

爺獨霸怡葒院 2024-12-14 06:51:12

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

  * @return classOrInterfaceName

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

请注意带有接口/类的文件位于项目内或引用它。

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

The function getDriver() needs appropriate type-hints for the return value (function's docblock):

  * @return classOrInterfaceName

This is normally enough to have a IDE "go deeper". I'm pretty sure Phpstorm supports that, but I'm not a Phpstorm user.

Take care the file with the interface/class is within the project or referenced to it.

As a work around you can assign the return value to a variable and type-hint that variable. Might not be that comfortable but can help.

等风来 2024-12-14 06:51:12

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

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

Please ensure that only one definition of class Driver exists across all your project files. This is crucial for current versions of PhpStorm

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文