如何有效地使用环境变量

时间:2014-10-22 20:43:42

标签: php environment-variables slim phpactiverecord

所以我现在使用两个主要的PHP项目库:php-activerecord和slim micro framework。我也是流浪汉和傀儡的使用者,因为我喜欢让事情保持同步。在这一点上我似乎无法解决的一件事就是管理我的代码所处的不同环境。似乎我提到的两个图书馆试图给出一个机制来管理这个但是我没有看到我应该把这些信息放在哪里。

//This is the config for php-AR
ActiveRecord\Config::initialize(function($cfg){
    $cfg->set_model_directory('models');
    $cfg->set_connections(array(
        //This is what I am interested in
        'development' => 'mysql://username:password@localhost/database_name'));
});

与上述类似,Slim也有环境设置。这些环境设置是否都基于配置文件,只是基于$ _SERVER超级全局?

这通常如何管理?我对大型环境非常好奇。

编辑1)更清楚一点。我很好奇在使用的服务器中添加到代码和设置的逻辑。我知道这有点宽泛,请参阅下文。

我已经看到很多用途,其中提到了.htaccess来从中提取环境变量。 显然,正如我所提到的,PHP具有$ _SERVER超级全局,我可以构建逻辑。 感谢Diederik,我现在知道我可以在我的服务器上使用〜/ .bash_profile。

1 个答案:

答案 0 :(得分:1)

你看过ActiveRecord的自述文件了吗?它清楚地说明了如何实现这一目标。 在上面发布的代码中,您已经定义了一个开发数据库。您可以根据需要简单地添加新的。上传到其他服务器后,您唯一需要更改的部分就是以下部分:

ActiveRecord\Config::initialize(function($cfg)
{
  $cfg->set_default_connection(your_environment);
});

现在,需要首先定义your_environment。这可以通过以下方式实现:

$cfg->set_default_connection(getenv('APP_ENV'));

然后你必须定义那个环境变量。这可以通过多种方式完成。一个例子是将以下内容放在~/.bash_profile

export APP_ENV="development"

应该这样做。