codeigniter: доступ к переменным конфигурации из других файлов конфигурации?
У меня есть два файла конфигурации.
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 ответов
Я проверил, и в этот момент в жизненном цикле запроса свойство config объекта 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
}
Если вы загружаете файлы конфигурации, убедитесь, что они загружаются в правильном порядке. Файл конфигурации должен быть автоматически загружен после любого, от которого он зависит.
Добавьте это к вашему файлу конфигурации электронной почты.
$environment = config_item('env');
OR THIS
$environment = $this->config->item('env');
Не уверен, что первый будет работать на вашей установке. Большинство людей, кажется, используют второе.
Попробуй это:
$env = $this->config->item('env');
if ($env == "dev_server") {
// Do this...
}
else {
// Do this..
}
Пожалуйста, смотрите ниже решения
$ This->config-> конфигурации ['base_url']
echo "<pre>";
print_r($this->config);
Выше будут напечатаны необходимые данные
В CodeIgniter 3.0 решением для доступа к переменным конфигурации в другом файле конфигурации является получение экземпляра CodeIgniter. Если у вас есть ссылка на него, вы можете получить доступ с помощью item
функция.
$CI =& get_instance();
$var = $CI->config->item('item_name');
Использовать функцию config_item (system / core / Common.php)
/ ** * Возвращает указанный элемент конфигурации * * @access public * @return mixed
В этом случае вы хотели бы поместить конфигурацию в
- приложение / Config / ceveloppment / my_config.php
- Приложение / конфигурация / производство / my_config.php
http://codeigniter.com/user_guide/libraries/config.html
В сочетании с другими awnsers вы можете обмениваться информацией между двумя файлами конфигурации для одной и той же среды