我正在开发一个需要访问数据库的PHP应用程序,我正在使用git进行版本控制。我想创建一个设置文件,用于存储用户名,密码和其他特定于应用程序的设置。但是,我不想冒险将它提交到我的存储库。
我目前通过在同一目录中创建settings.ignore.php文件并将其列在我的.gitignore文件中来管理它。
的settings.php:
<?php
$dbUser = '';
$dbPass = '';
$dbName = '';
include 'settings.ignore.php';
settings.ignore.php:
<?php
$dbUser = 'admin';
$dbPass = 'secret';
$dbName = 'database';
这是解决问题的最佳或最常用方法吗?
答案 0 :(得分:1)
通常,配置设置应存储在应用程序代码之外。
这样,您可以非常简单地更新应用程序,而无需触及配置。例如,看一下Symfony项目的文件夹结构:
app/ # configuration, log files, cache
bin/ # "binaries", i.e. helper scripts for the command line
src/ # YOUR application code, i.e. code you wrote specifically for your app
vendor/ # 3RD PARTY code, i.e. Symfony and other external code
web/ # public files: images, JS, CSS, font files
配置是特定于环境的,并且取决于它是哪一个,可以在不同的文件中找到:
app/config/config_dev.yml # config for your development environment
app/config/config_test.yml # config for your unit tests
app/config/config_prod.yml # config for production/target environments
app/config/config_longjon.yml # if you want, set up your own env. type
app/config/config.yml # common config for all of them, inherited
顺便说一句,正如您所见,Symfony并不使用PHP文件进行配置,而是使用YAML(或XML)。在这种情况下,将配置存储在文档根目录之外当然非常重要。
我建议下载一些用不同语言编写的广泛使用的框架,也可以阅读他们的文档,看看他们如何处理这类问题。
他们通常会非常考虑这些事情,而且许多经验丰富的开发人员通常会参与其中。