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

时间:2010-12-09 02:02:24

标签: php codeigniter frameworks 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
}

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

如何访问此值?

7 个答案:

答案 0 :(得分:8)

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

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

$this->config['env']

所以这应该有效:

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
}

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

答案 1 :(得分:5)

将此添加到您的电子邮件配置文件中。

$environment = config_item('env');
OR THIS
$environment = $this->config->item('env');

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

答案 2 :(得分:3)

试试这个:

 $env = $this->config->item('env');

 if ($env == "dev_server")  {
   // Do this...
 }
 else  {
   // Do this..
 }

答案 3 :(得分:0)

在这种情况下,您可能希望将配置放在

  • 应用/配置/ ceveloppment / my_config.php
  • 应用/配置/生产/ my_config.php

http://codeigniter.com/user_guide/libraries/config.html

与其他配置文件结合使用,您可以在同一环境的两个配置文件之间共享信息

答案 4 :(得分:0)

使用config_item函数(system / core / Common.php)

/ ** *返回指定的配置项 * * @access public * @return mixed

答案 5 :(得分:0)

请参阅以下解决方案

$这 - > config->配置[ 'BASE_URL']

echo "<pre>";
print_r($this->config);

以上将打印所需的详细信息

答案 6 :(得分:0)

在CodeIgniter 3.0中,访问另一个配置文件中的配置变量的解决方案是获取CodeIgniter实例。一旦你有了它的引用,你就可以使用item函数进行访问。

$CI =& get_instance();
$var = $CI->config->item('item_name');