/** * Prepares component * * @param string $environment */ public static function setup($environment = '') { $config = CoreConfig::readAppConfig(); if ($environment == '') { if (!isset($config->application->mode)) { throw new ActiveRecordException('No se ha definido el entorno por defecto de la aplicación'); } else { $environment = $config->application->mode; } } $environmentConfig = CoreConfig::readEnviroment(); if (!isset($environmentConfig->{$environment})) { throw new ActiveRecordException('No se ha definido el entorno por defecto en enviroment.ini'); } $envConfig = $environmentConfig->{$environment}; self::$_connection = DbLoader::factory($envConfig->{'database.type'}, array('host' => $envConfig->{'database.host'}, 'port' => $envConfig->{'database.port'}, 'username' => $envConfig->{'database.username'}, 'password' => $envConfig->{'database.password'}, 'name' => $envConfig->{'database.name'}, 'schema' => $envConfig->{'database.schema'})); self::$_connection->setProfiling(new ActiveRecordMigrationProfiler()); }
**/ if (isset($config['pdo'])) { $dbclass = "DbPDO{$config['type']}"; if (!class_exists($dbclass)) { /** * @see DbPDO */ require_once CORE_PATH . 'libs/db/adapters/pdo.php'; require_once CORE_PATH . 'libs/db/adapters/pdo/' . $config['type'] . '.php'; } } else { $dbclass = "Db{$config['type']}"; if (!class_exists($dbclass)) { require_once CORE_PATH . 'libs/db/adapters/' . $config['type'] . '.php'; } } if (!class_exists($dbclass)) { throw new KumbiaException("No existe la clase {$dbclass}, necesaria para iniciar el adaptador", 0); } $connection = new $dbclass($config); /** * Si no es para conexion nueva, la cargo en el singleton **/ if (!$new_connection) { self::$raw_connections[$database] = $connection; } return $connection; } } return DbLoader::load_driver();