title: codeigniter load external config file
body: <p>I'm working with CodeIgniter and I’d like to load one or more config files located in an external folder, shared by different CI installation.
  Is it possible?</p>
  
  <p>I tried to extend the Loader Class, and call the new method:
  $this -> load -> external_config(‘MY\EXTERNAL\PATH’);</p>
  
  <p>Load is successful, but i can’t retrieve config items in my controller, because in MY_Loader class the core\Loader config property is not visible, and i can’t merge it with the new loaded values.</p>
  
  <p>This is my code:</p>
  
  <pre><code>&lt;?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  
  class MY_Loader extends CI_Loader {
  
   /**
    * List of all loaded config files
    *
    * @var array
    */
   var $is_config_loaded = array();
  
   /**
    * List of all loaded config values
    *
    * @var array
    */
   //var $ext_config = array();
  
   function __construct(){
          parent::__construct();
      }
  
  
      /**
    * Loads an external config file
    *
    * @param string
    * @param bool
    * @param  bool
    * @return void
    */
   public function external_config($file = '', $use_sections = FALSE, $fail_gracefully = FALSE)
   {
    $file = ($file == '') ? 'config' : str_replace('.php', '', $file);
    $found = FALSE;
    $loaded = FALSE;
  
    $check_locations = defined('ENVIRONMENT')
     ? array(ENVIRONMENT.'/'.$file, $file)
     : array($file);
  
  
     foreach ($check_locations as $location)
     {
      $file_path = $file.'.php';
  
      if (in_array($file_path, $this-&gt;is_config_loaded, TRUE))
      {
       $loaded = TRUE;
       continue 2;
      }
  
      if (file_exists($file_path))
      {
       $found = TRUE;
       break;
      }
     }
  
     if ($found === FALSE)
     {
      if ($fail_gracefully === TRUE)
      {
       return FALSE;
      }
      show_error('The configuration file '.$file.'.php does not exist.');
     }
     else{
      include($file_path);
  
      if ( ! isset($config) OR ! is_array($config))
      {
       if ($fail_gracefully === TRUE)
       {
        return FALSE;
       }
       show_error('Your '.$file_path.' file does not appear to contain a valid configuration array.');
      }
  
      if ($use_sections === TRUE)
      {
       if (isset($this-&gt;ext_config[$file]))
       {
        $this-&gt;ext_config[$file] = array_merge($this-&gt;ext_config[$file], $config);
       }
       else
       {
        $this-&gt;ext_config[$file] = $config;
       }
      }
      else
      {
       $this-&gt;ext_config = array_merge($this-&gt;ext_config, $config);
      }
  
      $this-&gt;is_config_loaded[] = $file_path;
      unset($config);
  
      $loaded = TRUE;
      log_message('debug', 'Config file loaded: '.$file_path);
     }
  
    return TRUE;
   }
  } 
  </code></pre>
  
  <p>I found in core\Config.php a property 
      var $_config_paths = array(APPPATH); </p>
  
  <p>With the paths in wich look for config files.
  How can i add paths to the array without chance the core classe code?
  Any ideas?
  Thank you very much!!!</p>