PhpStorm 2020.2 - PHP内置函数无法识别

13

我刚刚安装了PhpStorm 2020.2,发现IDE无法识别所有PHP基类,例如Closure或mysqli。

查看左侧的PHP基础文件夹时,它只显示文件夹,就像您在第一张图片中看到的那样。另一方面,我的旧版PhpStorm 2017会在文件夹中显示文件,并且不能识别所有PHP基类。

PhpStorm 2020.2 输入图像描述

PhpStorm 2017 输入图像描述


请检查所有插件是否已更新,以及 PHP 安装是否也是最新的。 - Jite
@Jite 是的,当我安装这个版本时,唯一没有更新的是一个 Laravel 插件,但是这个版本与其他的 phpStorm 有相同的插件和配置。PHP 已经安装并且工作正常,甚至 PHPUnit 测试也没问题,只是 IDE 找不到这些类。 - SpaceDogCS
当你把光标放到“错误”上时,它显示了什么? - Jite
未定义的闭包类,然后询问是否要进行导入,如果已经导入,可以看到使用了use Closure语句。但是IDE会尝试在同一文件夹中查找Closure类,并向我展示来自vendor文件夹的Closure类的导入选项。 - SpaceDogCS
不,它没有起作用,我还尝试了直接从PhpStorm创建一个新项目,也没有起作用http://prntscr.com/unyuy2 - SpaceDogCS
显示剩余2条评论
2个回答

27
这是一个已知问题。据我所知,目前还没有确切的想法,为什么会发生这种情况,以及为什么只有一些用户受到影响。 https://youtrack.jetbrains.com/issue/WI-54626 -- 观察此工单(点赞/投票/评论),以便在有任何进展时收到通知。在 PhpStorm 2021.1.1 版本中已修复。

当前解决方法:

  1. 关闭IDE
  2. 找到PhpStorm 2020.2在计算机上存储索引/缓存的文件夹(见下文)
  3. 删除该文件夹(标准的“无效缓存”在这里不起作用)
  4. 启动IDE

不同操作系统缓存文件夹的典型位置:

  • Windows:%USERPROFILE%\AppData\Local\JetBrains\PhpStorm2020.2\caches
  • Linux:~/.cache/JetBrains/PhpStorm2020.2/caches
  • macOS:~/Library/Caches/JetBrains/PhpStorm2020.2/caches

对于2021.1版本:使用文件 | 无效缓存... -- 它现在能更好地清除它们,因此不需要手动删除这些文件夹。

  1. 文件 | 无效缓存...
  2. 选择前两个选项(可能只需要第一个,但最好都使用)
  3. 使用那里的无效并重启按钮
  4. IDE重新启动后,打开项目并让重新索引完成。

enter image description here

如果问题仍然存在(即在第二天或重启后出现),那么这是不同的原因,您需要等待2021.1.1版本。

1
哦天啊,那个好使了,我只是不知道该如何研究所以哈哈,非常感谢你,我浪费了我的下午,但至少现在一切都正常工作了,我会更新标题来匹配真实问题。 - SpaceDogCS
确认 - 从PHPStorm菜单中通过“文件->无效缓存/重启”进行清理根本没有起作用。手动从.cache文件夹中清理完美地完成了工作。在我的情况下,这是在PHPStorm更新到2020.3.2版本之后发生的。 - wit0ld
我在2022.3.2也遇到了同样的问题,而解决方法仍然有效。 - Wipster
是的,显然它在2023.1.2中仍然存在。不过这个解决办法仍然有效。感谢你的建议。 - El Ackabar

4
在执行@lazyone所说的所有操作之前,请确保Phpstorm php解释器已正确设置。您可以从以下位置检查设置:
文件/设置/语言和框架/PHP/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接