为什么SymfonyRequirements.php被排除在.gitignore之外?

mar*_*rcv 3 version-control gitignore symfony

如果我理解正确,SymfonyRequirements.php文件(生活在Symfony版本下/app/var依赖于Symfony版本)由Composer处理.因此,我认为任何版本控制系统都不应该跟踪它.但是,我发现它被排除在Symfony Standard Edition的.gitignore文件之外:

/var/*
[...]
!var/SymfonyRequirements.php
Run Code Online (Sandbox Code Playgroud)

编辑

Symfony核心开发人员@Stof在Github问题中说:

鉴于其中一项检查是您是否安装了供应商,它必须在安装之前就已存在(即使我们已自动更新要求,以便您下次检查最新版本).

这对我来说不是很清楚.任何人都可以提供有关此文件的更多详细信息,并解释为什么VCS应该或不应该跟踪它?

sla*_*bin 7

Symfony Check CLI脚本使用此文件来检查配置和运行Symfony App的最低要求.这是一个共同的后部署任务.

它检查当前的PHP版本/配置(php.ini设置)和所需的PHP扩展.例如,它检查date.timezone的当前设置.

@stof试图说的是,即使在使用依赖项之前,您也应该能够运行检查composer install.它甚至检查相关设备本身:检查存在vendor/composer目录.

它为您提供了一个很好的和足够的洞察力,了解Symfony App是否具有基于当前PHP配置运行所需的内容.

请注意,通过将此文件添加到VCS,您应该知道稍后使用后更新依赖项后可能会对此文件进行更改composer update.所以你应该记得提交这个文件!

请注意,这些检查还提供了一些建议(而不是要求).例如,检查此建议:

当使用Symfony安全组件的注销处理程序时,由于PHP错误#63379,您应至少拥有PHP 5.4.11(作为解决方法,您还可以在安全注销处理程序配置中将invalidate_session设置为false)

使用Symfony的其他一些项目也通过扩展此文件来实现自己的检查,例如checkout Oro Platforms Requirements Check.