开源软件中设置文件的约定

时间:2014-09-14 15:44:41

标签: php git open-source

我正在开发一个需要访问数据库的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';

这是解决问题的最佳或最常用方法吗?

1 个答案:

答案 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)。在这种情况下,将配置存储在文档根目录之外当然非常重要

我建议下载一些用不同语言编写的广泛使用的框架,也可以阅读他们的文档,看看他们如何处理这类问题。

他们通常会非常考虑这些事情,而且许多经验丰富的开发人员通常会参与其中。