PhpStorm无法识别核心PHP

13

PhpStorm无法识别核心PHP。例如,它无法识别Exception,工具提示显示“未定义的类'Exception'”。

我尝试了无效缓存,但没有用。我检查了同事的安装,他们似乎没有问题,在Ctrl +单击他们的Exception类之后,它正确链接到Core_c.php,而这对我来说并非如此。似乎我的PhpStorm没有捕捉到PHP插件/库,我不知道为什么。

我已经尝试重新安装最新版本的PhpStorm,并升级了所有软件包。甚至确保php.jar插件实际存在,而且它确实存在:

/opt/phpstorm/plugins/php/lib/php.jar

而且在PhpStorm中启用了PHP插件。

我在PhpStorm中遇到的另一个问题是,当我输入函数名称时,它没有提供建议。如果需要,我可以提供其他信息。


6
你是否使用命名空间?在异常(例如catch(\Exception $e))前面加上“\”。 - Bojan Radaković
1
只需要最新的idea.log文件就可以了,确保它是最新的(您可以关闭IDE;删除所有日志/文件;启动IDE--等待加载并尝试使用Ctrl+单击和代码完成;之后关闭IDE并共享该日志文件)。您能否展示一下您的.php文件是什么样子的(那个不能工作的文件)。最好整个IDE窗口--使用默认未修改的颜色方案。附言:如果有什么问题--您可以备份并删除IDE-wide设置,从头开始(最后的选择)。 - LazyOne
1
好的...这里有两个可能的解决方案:1)从https://github.com/JetBrains/phpstorm-stubs存储库下载php存根,并使用该字段指向本地版本,或者将其添加为“包含路径” 2)从头开始(关闭IDE;备份并删除IDE范围内的设置;启动IDE并不导入旧版本的设置)。此类设置通常位于~/.Phpstorm2016.3中。 - LazyOne
1
谢谢,我会这样做的。我下载了存根并将它们作为路径包含在我的项目中,这似乎解决了我的问题。也许这是当前版本的问题 - 我可能会降级到以前的版本。再次感谢。 - driima
@LazyOne 感谢您的故障排除,这对我很有帮助! - artspb
显示剩余17条评论
3个回答

14

如果出现了同样的问题,且您使用的是PhpStorm 2020.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

https://youtrack.jetbrains.com/issue/WI-54626


在我看来,这应该被标记为解决方案。 - LordOfTheRats
从这里解决了! - emppeak

4

如果您使用的是 PHP 7.1 以下的版本,Exception 将无法工作,因为它没有实现 Throwable 类。唯一让您的异常起作用的方法是扩展 Exception 类。我还会在异常前面加上反斜杠,例如 throw new \InvalidArgumentException。希望这对您有帮助。祝好运。


2

我认为我们应该考虑一些事情。您正在使用哪个版本的PHP?并非所有版本的PHP都支持Exception,而命名空间确实很重要,除非您使用的是依赖管理器,它可能已配置了其命名空间,但如果您从头开始构建,则需要考虑命名空间和PHP版本。


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