/** 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;
         }
     }
 }
Beispiel #2
0
 /**
  * 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;
     }
 }