应使用Scope定义核心目录视图并配合Excluded标记无关目录:先创建Local Scope(如Core PHP)包含file:src||file:app||file:tests等路径,再将vendor、node_modules等右键Mark as Excluded,确保其不被索引解析。

PhpStorm 的文件树默认展示全部文件,但真正需要编辑的往往只是 src、app、tests 这几个目录——其余如 vendor、node_modules、dist、storage/logs 不仅干扰视线,还会拖慢索引响应。直接隐藏它们,不是靠“视觉折叠”,而是用 Scope 配合 Excluded 状态实现真正轻量。
为什么 Project 视图里删不掉 vendor 和 node_modules?
Project 视图显示的是「项目物理路径下的所有内容」,右键删除或隐藏只是临时收起,下次刷新、重载项目或点 Show All Files 就又回来了。这不是 UI 设置问题,而是 PhpStorm 默认把整个根目录当源码区——它不区分“我要开发的”和“我只是放这儿的”。想让它们彻底不出现在文件树里,得先断掉 IDE 对这些路径的语义感知。
用 Scope 创建只含核心目录的视图
Scope 是 PhpStorm 里最被低估的过滤机制:它不修改项目结构,只定义「当前视角下哪些文件算‘相关’」。适合快速切到业务代码视角,尤其适合 Laravel、Symfony 或混合前端项目。
- 打开
View > Tool Windows > Scratches and Consoles(非必需),重点是:View > Appearance > Tool Window Bars确保开启 - 点击左上角 Project 标签右侧的下拉箭头 → 选
Scopes - 点加号
+→Local Scope→ 命名如Core PHP - 在表达式框中填入:
file:src || file:app || file:tests || file:config || file:routes(按你实际目录调整) - 勾选
Show files from external libraries如果你还想保留对vendor/laravel/framework的跳转能力
之后切换回 Project 视图,下拉选 Core PHP,文件树瞬间只留你关心的路径——vendor、node_modules、dist 全部消失,连灰色图标都不见。
立即学习“PHP免费学习笔记(深入)”;
Excluded 目录必须同步设置,否则 Scope 会失效
Scope 只是“视图过滤”,如果目录没被标记为 Excluded,IDE 仍在后台解析它们,搜索、补全、跳转仍可能命中。更糟的是:某些插件(比如 Psalm、PHPStan)会绕过 Scope,直接扫描物理路径。
- 先确保
vendor、node_modules、storage/logs、bootstrap/cache已右键 →Mark Directory as > Excluded - 检查
File > Settings > Directories,确认它们出现在Excluded列表里(图标灰红,非黄色) - 别忽略
vendor/autoload.php:它是 PSR-4 加载入口,排除会导致所有类无法识别——它必须保留,且所在目录不能整体 exclude - 如果用了 Composer auto-import,去
Settings > Languages & Frameworks > PHP > Composer关掉Enable auto-import for Composer packages,否则它会偷偷把vendor下所有 autoload 路径重新拉进索引
隐藏后还想查日志或看构建产物?用 Open in Explorer 快速跳转
Scope 和 Excluded 让这些目录从 IDE 主流程中退出,但不代表你永远不需要访问。真要查 storage/logs/laravel.log 或打开 dist/,别费劲取消排除——右键 Project 根目录 → Open in Explorer(macOS 是 Reveal in Finder),直接进系统文件管理器看,干净利落。
真正容易被忽略的点是:Scope 表达式不支持通配符递归匹配(比如 file:src/** 不生效),必须显式列出一级目录;而 Excluded 是唯一能阻止 PhpStorm 解析文件、释放内存、加速启动的动作——光靠 Scope,只是“眼不见”,不是“心不烦”。


















