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)处理对象的速度几乎与数组一样快,甚至导致(更小的)内存消耗。
显然,如果此代码不是您的,则此建议并不适用。
我实现了包含方法 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)处理对象的速度几乎与数组一样快,甚至导致(更小的)内存消耗。
显然,如果此代码不是您的,则此建议并不适用。