PhpStorm 8.0 - 如何在另一个文件中启用代码完成?

PhpStorm 8.0 - How enable code completion in another file?

我实现了包含方法 method()MyClass,并将实例存储在 test.php 中的 $_ENV['key'] 中。同样在 test.php 中,当我键入 $_ENV['key']->.

时代码完成工作

test2.php 中,我包含 test.php 并且代码完成对于 $_ENV['key']->.

不再有效

有人知道如何在 PhpStorm 中启用它吗?

数组的 AFAIK 类型跟踪在同一个文件中工作

您可以通过中间变量(是的,这不是最好的解决方案)和小 PHP文档注释来绕过它,如下所示:

/** @var MyClass $myVar */
$myVar = $_ENV['key'];
$myVar->

P.S. 一般来说,我建议不要以这种方式使用全局数组(或者甚至根本不使用全局变量——如果可能的话,在 bootstrap 期间只使用非常基本的东西)。相反(根据您的代码)我可能建议使用一些带有专用字段的静态 class (作为替代方案之一),您可以在其中轻松地向 [=27= 提供类型提示(通过 PHPDoc) ] 字段——这样 IDE 将始终知道它的帽子类型。当前 PHP 版本(5.5,尤其是 5.6)处理对象的速度几乎与数组一样快,甚至导致(更小的)内存消耗。

显然,如果此代码不是您的,则此建议并不适用。