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

时间:2016-02-10 12:23:47

标签: symfony version-control gitignore

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

/var/*
[...]
!var/SymfonyRequirements.php

修改

Symfony核心开发人员@Stof在a Github issue中说:

  

鉴于其中一项检查是您是否安装了供应商,它必须   安装之前在那里(即使我们有自动   更新要求,以便您下一步检查最新的要求   时间)。

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

2 个答案:

答案 0 :(得分:7)

Symfony Check CLI Script使用此文件来检查配置和配置的最低要求。运行Symfony应用程序。这是一个Common Post-Deployment Task

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

@stof试图说的是,即使在使用composer install安装依赖项之前,您也应该能够运行检查。它甚至会检查依赖项安装本身:vendor/composer目录的checks for existence

它给你一个好的&充分了解Symfony App是否具有基于当前PHP配置运行所需的内容。

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

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

  

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

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

答案 1 :(得分:0)

  

这些文件在check CLI工具中使用,该工具使用此文件来控制运行Symfony的最低要求。您可以在文档中找到更多信息。

     

通常在版本控制系统中考虑,正如您在github上的symfony-standard分发项目中看到的那样:

     

https://github.com/symfony/symfony-standard

     

(当然您可以在自定义.gitignore文件中添加文件)

为了更加精确,此文件用于symfony3中的php bin/symfony_requirements命令和旧版本的php app/check.php,用于检查您的php / symfony要求。

请参阅此问题Should the changes of SymfonyRequirements.php be included in version control?documentation