Php git使用另一个名称创建文件
假设在计算机上运行命令时,我将环境定义为:Php git使用另一个名称创建文件,php,git,Php,Git,假设在计算机上运行命令时,我将环境定义为: define('HOST', 'localhost'); 但当我在服务器上提交而不是在服务器上提交时,我希望出现另一个代码: define('HOST', 'server'); 所以我创建了两个文件index.php和index2.php(应该由脚本动态创建) 如何代表index.php提交index2.php?最好的解决方案是将环境变量保存在git未跟踪的文件中,并将其包含在php文件中 例如: index.php require_once('p
define('HOST', 'localhost');
但当我在服务器上提交而不是在服务器上提交时,我希望出现另一个代码:
define('HOST', 'server');
所以我创建了两个文件index.php和index2.php(应该由脚本动态创建)
如何代表index.php提交index2.php?最好的解决方案是将环境变量保存在git未跟踪的文件中,并将其包含在php文件中 例如: index.php
require_once('parameters.php');
// rest of your code
parameters.php(用于本地环境)
.gitignore
./parameters.php
正如您所看到的,参数文件现在包含您的本地配置,并且不被git跟踪。您可以使用该环境的配置在远程服务器上创建另一个parameters.php文件
parameters.php(用于远程环境)
您似乎遇到了问题,因为某些文件取决于您的配置,而您的计算机和服务器上没有相同的配置 解决方案可以是在Git中放入一个具有通用配置的文件,并让它被覆盖
这就是原因:在他们的回购协议中有一个,但用户可以提供一个local.php来覆盖它。这个local.php不是要放在Git()中的。我通常使用(web)服务器中设置的环境变量。例如,在Apache配置或.htaccess文件中:
SetEnv MYAPP_ENVIRONMENT production
在应用程序中,您可以针对不同的环境进行不同的配置;我以YAML文件的形式保存我的文件:
default:
foo: bar
baz: 42
production:
foo: blarg
baz: 84
然后查找环境变量:
$env = getenv('MYAPP_ENVIRONMENT');
并根据要使用的配置来决定
对于像数据库密码这样不应该存储在存储库中的敏感值,我甚至允许通过合并到配置文件中的环境变量设置任意值。例如:
SetEnv MYAPP_FOO blörg
(上述内容将覆盖任何配置中的foo
)
$env = getenv('MYAPP_ENVIRONMENT');
SetEnv MYAPP_FOO blörg