Это старый и уже принятый ответ, но я нашел решение, которое, я думаю, работает хорошо. Как уже упоминалось @Eric, лучший способ сделать это - использовать встроенную функциональность переменной среды для определения логики конфигурации. Проблема, с которой я столкнулся при таком подходе, заключается в том, что он требует сохранения большого количества избыточных значений, и вам часто требуется центральная конфигурация по умолчанию, которая запускается для всех сред, и только значения, специфичные для среды, заменяют значения по умолчанию.
Структура вашей папки должна быть:
/app/config/config.php
/app/config/development/config.php
/app/config/production/config.php
Затем в ваших конфигурационных файлах для среды используйте в качестве отправной точки следующее:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
// Set the default values first, then we'll overwrite environmental-specific values
include(APPPATH . '/config/' . pathinfo(__FILE__, PATHINFO_BASENAME));
Использование этого в качестве отправной точки позволит вам сделать то же самое для database.php и т. Д. - для любого файла / config /, для которого вы хотите версию для конкретной среды, без написания собственной логики загрузки среды, которую CI уже предоставляет .