我正在处理一个大型项目,而settings.php文件位于存储库中。我需要在本地覆盖用户名和密码,因为我的细节不同。我不想影响主要的settings.php文件,因为这是其他开发人员使用的。可以这样做吗?如果我可以创建一个新文件,那么我可以用GIT在本地忽略它,这意味着它不会影响存储库。
答案 0 :(得分:1)
您可以将其添加到settings.php文件的底部:
/**
* settings file for local development only.
*
* This file should NEVER be committed to version control and should never exist
* on a non-local development machine.
*/
if (file_exists('./' . conf_path() . '/settings.local.php')) {
require './' . conf_path() . '/settings.local.php';
}
然后就像你建议的那样,将settings.local.php添加到.gitignore文件中。
Screenack发布的链接应该是您所需要的。
答案 1 :(得分:0)
您可以通过多种不同方式执行此操作:
将您的开发环境中的文件设为只读。这使得您可以将本地文件设置为任何内容,而不会被版本控制同步覆盖。您需要在每次提交时手动排除文件。
从版本控制中排除文件。如果您需要其他开发人员可以使用这些设置,您可以创建一个名为settings.base.php的单独文件,他们可以使用它来创建自己的本地设置。
我的首选是设置是通用的。显然,任何具有相同用户名和密码的资源都不是问题,您可能遇到的问题是主机。您可以让每个开发人员/服务器覆盖它的主机映射到您希望它指向的实际服务器。在Linux中它是/ etc / hosts,在windows中是/ windows / system32 / drivers / etc / hosts。
#3的示例主机设置:
开发者机器
127.0.0.1 databaseserver.com
临时机器
192.168.1.100 databaseserver.com
生产机器可能不需要重新映射。除非您从未拥有数据库的主机名,否则您将创建一些像my.database.srv这样的组成主机名,然后将其设置为生产。
有关上述所有内容(尤其是#3)的一个方面是,它是一个独立于平台的解决方案,因此您可以为任何类型的项目(不仅仅是Drupal)执行此操作。