/** Realiza lar carga inicial */ protected function init() { //Carga las dependencias en base a la lista de archivos definidos en configuracion global $this->dependencies = array(); foreach ($this->context->getDependenciesFile() as $nameFile) { $this->dependencies = array_merge($this->dependencies, $this->context->readConfigurationFile($nameFile)); } //Define las dependencias que se cargan segun Type $this->loadDependencies = array(); foreach ($this->dependencies as $key => $value) { if (isset($value['load_in'])) { $this->loadDependencies[$key] = $value; } } }
/** * Abre una conexion en base a la configuracion de la BD * @param string $nameDB * @return \PDO * @throws \PDOException */ protected function getConnection($nameDB = NULL) { //Leo archivo de configuracion de BD si es la primera vez if (self::$config_db == NULL) { self::$config_db = $this->context->readConfigurationFile($this->configFile); } //Consulta la bd actual si no se indico opcion print_r(self::$config_db); if ($nameDB == NULL) { $nameDB = self::$config_db['actual_db']; } //Cargo las opciones de la bd actual $cbd = self::$config_db[$nameDB]; $this->currentDB = $nameDB; $this->currentConfiguration =& self::$config_db[$nameDB]; //Abro una conexion try { // Desde 5.3.6 o > // $gbd->exec("set names " . $cbd['charset']); // Versiones anteriores usaba $cbd['driverbd'].':host='.$cbd['hostname'].';dbname='.$cbd['database'].';charset=utf8'; //Creo el dsn $dsn = $cbd['driverbd'] . ':'; //Para SQLite y el resto if ($cbd['driverbd'] == "sqlite") { $dsn .= $cbd['database']; } else { $dsn .= 'host=' . $cbd['hostname'] . ';port=' . $cbd['port'] . ';dbname=' . $cbd['database']; } if ($cbd['user'] == "") { $cbd['user'] = NULL; $cbd['pass'] = NULL; } //Abro la conexion $gbd = new \PDO($dsn, $cbd['user'], $cbd['pass'], array(\PDO::ATTR_PERSISTENT => $cbd['persistent'])); $gbd->exec("SET NAMES '" . $cbd['charset'] . "'"); if ($this->context->getEnvironment() == 'development') { $gbd->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); } else { $gbd->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_SILENT); } //Retorno la conexion return $gbd; } catch (\PDOException $e) { throw $e; } }