ignoreVCSIgnored 是 Symfony Finder 4.4 引入的布尔选项,用于跳过 Git/SVN 等 VCS 忽略的文件;需在 in() 前链式调用,仅读取根目录下标准忽略文件,依赖本地 VCS 元数据存在。

ignoreVCSIgnored 是 Symfony Finder 组件在 4.4 版本中引入的一个布尔型配置选项,用于控制是否跳过被版本控制系统(如 Git、SVN)忽略的文件和目录。
它解决什么问题
项目中常通过 .gitignore 或 .svnignore 排除临时文件、日志、构建产物等。默认情况下,Finder 不会读取这些规则,会照常扫描并返回所有匹配路径——哪怕它们已被 Git 忽略。启用 ignoreVCSIgnored 后,Finder 会自动解析当前目录下的 VCS 忽略规则,并在遍历时主动跳过对应条目。
如何使用
该参数仅在调用 in() 前设置才生效,需链式调用:
-
$finder->ignoreVCSIgnored(true)->in(__DIR__)—— 启用,跳过 .gitignore 中定义的路径 -
$finder->ignoreVCSIgnored(false)->in(__DIR__)—— 禁用(默认行为),不检查 VCS 忽略规则
注意:它只识别标准 VCS 忽略文件(如 .gitignore、.hgignore、.svnignore),不支持自定义忽略文件名;也不影响手动添加的 exclude() 规则。
常见注意事项
该选项依赖本地 VCS 元数据存在。若目标目录不含 .git/ 或其他 VCS 目录,即使设为 true 也无实际效果,不会报错,只是静默失效。
它不会递归加载子目录中的嵌套 .gitignore(例如工作区子模块里的规则),仅读取执行 in() 所指定根路径下的顶层忽略文件。


















