You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下VSCode中PHP核心扩展(如MySQLi)无法跳转定义求助

解决VSCode中PHP核心扩展(如MySQLi)无法跳转定义的问题

我之前也碰到过一模一样的情况:Composer管理的代码用Go To Definition完全没问题,但像MySQLi这种PHP核心扩展就是没法跳转定义。看了你给出的VSCode配置,已经做了不少正确的设置(比如把mysqli加到intelephense.stubs里、指定了php.validate.executablePath),给你几个实际能解决问题的办法:

1. 安装PHP开发包(最关键的一步)

Ubuntu默认安装的PHP只有运行时文件,核心扩展的头文件、源码定义这些Intelephense需要的内容并没有包含进来。你得装对应版本的PHP开发包:

  • 先确认自己的PHP版本:php -v
  • 安装对应版本的dev包,比如你用的是PHP 8.1,就运行:sudo apt install php8.1-dev
  • 要是想直接装系统默认版本的,直接执行:sudo apt install php-dev

装完之后重启VSCode,再试试跳转MySQLi的方法,大概率就能正常跳转了。

2. 更新Intelephense到最新版本

旧版本的Intelephense偶尔会有核心扩展stubs识别的bug,打开VSCode的扩展面板,找到Intelephense,看看有没有更新提示,直接更到最新版再重启编辑器试试。

3. 禁用冲突的PHP插件

如果你还装了其他PHP相关的智能提示插件(比如PHP IntelliSense这类),很可能会和Intelephense冲突,导致核心扩展的定义没法正常加载。暂时把这些非必要的PHP插件禁用,只保留Intelephense,再测试跳转功能。

4. 手动指定PHP Include路径(可选)

如果前面的步骤都没解决,可以试试手动给Intelephense指定PHP的include路径,让它更精准地找到核心扩展的定义。在settings.json里添加这段配置:

"intelephense.environment.includePaths": [
    "/usr/include/php",
    "/usr/include/php/20210902" // 这个路径要根据你的PHP版本调整,比如PHP8.1是20210902,PHP7.4是20190902
]

你可以通过php -i | grep "include_path"命令找到系统的PHP include路径,把对应的路径填进去就行。

内容的提问来源于stack exchange,提问作者Maria Gabriela

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 16:17:50