public function dbforge($db = NULL, $return = FALSE)
{
$CI = $this->get_instance();
if (!is_object($db) or !$db instanceof CI_DB) {
class_exists('CI_DB', FALSE) or $this->database();
$db =& $CI->db;
}
require_once BASEPATH . 'database/DB_forge.php';
require_once BASEPATH . 'database/drivers/' . $db->dbdriver . '/' . $db->dbdriver . '_forge.php';
if (!empty($db->subdriver)) {
$driver_path = BASEPATH . 'database/drivers/' . $db->dbdriver . '/subdrivers/' . $db->dbdriver . '_' . $db->subdriver . '_forge.php';
if (file_exists($driver_path)) {
require_once $driver_path;
$class = 'CI_DB_' . $db->dbdriver . '_' . $db->subdriver . '_forge';
}
} else {
$class = 'CI_DB_' . $db->dbdriver . '_forge';
}
if ($return === TRUE) {
return new $class($db);
}
$CI->dbforge = new $class($db);
return $this;
}