ere*_*non 31 svn version-control configuration-files
假设我们有一个包含敏感密码的配置文件.我想版本控制整个项目,包括配置文件,但我不想共享我的密码.
这可能是好的,如果这个配置文件:
database_password=secret
foo=bar
Run Code Online (Sandbox Code Playgroud)
变
database_password=*
foo=bar
Run Code Online (Sandbox Code Playgroud)
而且vcs的其他用户也可以自己设置密码.忽略文件不是一个好方法,开发人员应该知道,如果配置文件发生了变化.
本地版本:
database_password=own_secret
foo=bar
Run Code Online (Sandbox Code Playgroud)
vcs中的配置文件:
database_password=*
foo=bar
Run Code Online (Sandbox Code Playgroud)
然后突然,配置文件发生了变化:
database_password=*
foo=bar
baz=foo
Run Code Online (Sandbox Code Playgroud)
每个开发人员都会使用本地版本:
database_password=own_secret
foo=bar
baz=foo
Run Code Online (Sandbox Code Playgroud)
这是我的解决方案.我怎么能实现这种行为?你如何存储你的配置文件?有没有办法做到这一点,还是我应该破解什么?
不确定您的配置是如何实现的,但是具有分层覆盖是我如何处理它.
你有一个主配置,包含公共配置和虚拟用户名/密码(或完全保留这些).然后,每个开发人员使用其特定的用户名/密码创建本地override.config(或其他).主配置在源代码管理下,开发人员(或机器)本地覆盖不在.
我已经在.NET中完成了这个,但不是PHP,所以我不知道这有多容易,我害怕.
创建一个包含用户特定信息作为 PHP 变量的本地覆盖文件。
例如,创建一个名为 local_overrides.php 的文件,其中包含以下内容:
$local_password = 'qUzaEAFK13uK2KHy';
Run Code Online (Sandbox Code Playgroud)
然后在包含您的数据库密码的文件中执行以下操作
$overrides = 'local_overrides.php';
if (file_exists($overrides)) {
#include_once($overrides);
$db_password = $local_password;
} else {
// perform appropriate action: set default? echo error message? log error?
$db_password = 'l1m1t3d!'
}
Run Code Online (Sandbox Code Playgroud)
源代码管理永远不必看到本地覆盖文件。
| 归档时间: |
|
| 查看次数: |
6149 次 |
| 最近记录: |