自动完成不适用于 foreach 中的 Symfonys SplFileInfo(Finder) 方法

Autocomplete doesn't work on Symfonys SplFileInfo(Finder) method in foreach

我正在学习 Symfony 教程并且一切正常,但是 PhpStorm 不会自动完成本教程中的 getRealpath() 或其他 $file 方法(只有 foreach循环其他人做的真的很好)。 Symfony Tutorial Finder

首先我认为这是 Symfony 的问题,因为我信任 PhpStorm :) 我必须改变什么吗?我排除了 var/cache 文件夹

看起来 PhpStorm 在遍历 $finder 集合时无法找出正确的类型(考虑到它的工作原理,这是意料之中的)。

您可以通过 PHP 文档注释添加类型提示轻松解决此问题(例如,将其放置在 foreach 循环之前或内部):

/** @var SplFileInfo $file */

确保它将是 \Symfony\Component\Finder\SplFileInfo 而不仅仅是 \SplFileInfo(标准 PHP class)。

P.S. 您也可以尝试安装和启用 Symfony 插件——可能(我自己没有使用过)它会提供这样的类型提示automatically/internally,所以不需要这样的手动步骤。

Symfony 核心现在也直接支持 PhpStorm 2016.1+ 请参阅:https://github.com/symfony/symfony/pull/19036