MY_Loader.php 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2. class MY_Loader extends CI_Loader {
  3. public function database($params = '', $return = FALSE, $active_record = NULL)
  4. {
  5. // Grab the super object
  6. $CI =& get_instance();
  7. // Do we even need to load the database class?
  8. if (class_exists('CI_DB') AND $return == FALSE AND $active_record == NULL AND isset($CI->db) AND is_object($CI->db))
  9. {
  10. return FALSE;
  11. }
  12. require_once(BASEPATH.'database/DB.php');
  13. $db = DB($params, $active_record);
  14. // Load extended DB driver
  15. $custom_db_driver = config_item('subclass_prefix').'DB_'.$db->dbdriver.'_driver';
  16. $custom_db_driver_file = APPPATH.'core/'.$custom_db_driver.'.php';
  17. if (file_exists($custom_db_driver_file))
  18. {
  19. require_once($custom_db_driver_file);
  20. $db = new $custom_db_driver(get_object_vars($db));
  21. }
  22. // Return DB instance
  23. if ($return === TRUE)
  24. {
  25. return $db;
  26. }
  27. // Initialize the db variable. Needed to prevent reference errors with some configurations
  28. $CI->db = '';
  29. $CI->db =& $db;
  30. }
  31. }
  32. /* End of file MY_Loader.php */
  33. /* Location: ./application/core/MY_Loader.php */