codeigniter:从其他配置文件访问配置变量?

Hai*_*ood 3 php frameworks codeigniter configuration-files

我有两个配置文件.

config.php(代码点火器核心配置)

和email.php(使用时由电子邮件类自动加载)

我想要做的是.

在config.php中有

$config['env'] = 'hailwood_dev';

然后在email.php中

if($config['env'] == 'hailwood_dev'){
//email variables like smtp server to do with localhost
} elseif($config['env'] == 'production'){
//email variables like smtp server to do with production
}
Run Code Online (Sandbox Code Playgroud)

但这没有任何影响(我猜测为$ config ['env']没有这些值).

我该如何访问此值?

Ste*_*ran 8

我检查了请求生命周期中的那一点,CodeIgniter对象的config属性只是一个数组,而不是一个配置对象.

所以你应该能够得到这样的配置设置:

$this->config['env']
Run Code Online (Sandbox Code Playgroud)

所以这应该工作:

if ($this->config['env'] == 'hailwood_dev')
{
    //email variables like smtp server to do with localhost
} 
elseif ($this->config['env'] == 'production'){
    //email variables like smtp server to do with production
}
Run Code Online (Sandbox Code Playgroud)

如果您要自动加载配置文件,请确保它们以正确的顺序自动加载.配置文件必须依赖于自动加载.


Ant*_*ack 5

将其添加到您的电子邮件配置文件.

$environment = config_item('env');
OR THIS
$environment = $this->config->item('env');
Run Code Online (Sandbox Code Playgroud)

不确定第一个是否适用于您的设置.大多数人似乎都使用第二种.