Intelephense 高 CPU 和提示卡顿主因是无限制索引大项目及干扰因素。需在 settings.json 中排除 vendor/、node_modules/ 等路径,禁用冗余 stubs 和 PHP 插件,指定正确 php.executablePath,运行 composer dump-autoload -o 优化自动加载,并将项目目录加入 Windows Defender 排除列表。
VS Code 中 PHP 代码提示延迟,八成是 Intelephense 在后台反复扫描或索引大项目。它默认会递归分析整个工作区,遇到 vendor/、node_modules/ 或历史备份文件夹时,极易卡住语言服务进程。
settings.json,添加排除路径:{
"intelephense.environment.includePaths": [],
"intelephense.files.exclude": [
"**/vendor/**",
"**/node_modules/**",
"**/backup/**",
"**/*.log"
],
"intelephense.files.maxSize": 1000000
}"intelephense.stubs" 自动补全(尤其 Laravel 项目),它会强制加载数百个内置类定义,拖慢首次启动;如需保留,改用显式声明:"intelephense.stubs": ["php", "json", "xml"]
php.exe 进程Intelephense 默认不依赖系统 PHP,但某些扩展(如 PHP CS Fixer 或自定义 sniffer)会触发频繁的 CLI 调用。若 VS Code 找不到或调用的是低版本 php,就会在提示过程中卡在「Running PHP command...」状态。
php -v 输出是否 ≥ 7.4(Intelephense 最低要求),且不是 MAMP/XAMPP 自带的阉割版"php.suggest.basic": false, "php.executablePath": "/usr/local/bin/php"(macOS/Linux)或
"php.executablePath": "C:\\php\\php.exe"(Windows)
Remote - WSL 或 Dev Containers),让语言服务直接运行在 PHP 环境里Intelephense 依赖 composer autoload 信息做符号解析。若项目没跑过 composer dump-autoload --optimize,或 autoload_psr4.php 文件缺失/过期,它就得边提示边反射类,响应自然变慢。
composer dump-autoload -o(注意
-o 参数,生成优化后的静态映射)vendor/composer/autoload_psr4.php 是否存在且非空;若为空,说明 autoloader 损坏,需重装依赖:rm -rf vendor/ && composer install
.php 文件的单目录),可临时关闭自动索引:"intelephense.environment.scanFiles": false,改用手动触发
Intelephense: Index workspace 命令
Windows Defender 实时扫描干扰这问题在 Windows + WSL 组合下特别明显:Intelephense 频繁读写 vendor/ 下的 PHP 文件,触发 Defender 扫描每个文件,导致 IO 延迟飙升至 2–5 秒/次。
真正卡住的时候,别急着换插件。先看一眼 Ctrl+Shift+P → Developer: Toggle Developer Tools 里的 Console 是否刷出 ENOSPC 或 EACCES 错误——很多“延迟”其实是权限或磁盘满导致的静默失败。