/**
  * Estable la conexion a la base de datos.
  * 
  * Si no se indica valor para el parámetro $conection, se tomarán los valores
  * de la primera conexión definida en el archivo de configuración. De esta forma, y en el caso
  * de trabajar con una sola base de datos, no es necesario indicar el nombre de conexión para
  * cada tabla en el modelo de datos.
  *
  * En entorno de desarrollo los parámetros de conexión se fuerzan a:
  *
  *      user    =   $conection
  *      password=   $conection
  *      dataBase=   $conection
  *
  * 
  * Si la conexion es exitosa, getDblink() devolvera valor y si no getError() nos indica
  * el error producido.
  *
  * @param string $conection Nombre de la conexion, opcional
  */
 public function __construct($conection)
 {
     $this->logErrorQueryFile = str_replace("bin" . DIRECTORY_SEPARATOR . "albatronic", "", __DIR__) . "log/error_query.log";
     //$this->logErrorQueryFile = str_replace("bin\\albatronic", "", __DIR__) . "log/error_query.log";
     $this->logQueryFile = str_replace("bin" . DIRECTORY_SEPARATOR . "albatronic", "", __DIR__) . "log/query.log";
     //$this->logQueryFile = str_replace("bin\\albatronic", "", __DIR__) . "log/query.log";
     if (is_array($conection)) {
         if (is_null(self::$dbLinkInstance) || self::$host !== $conection['host'] || self::$dataBase !== $conection['database']) {
             self::$dbEngine = $conection['dbEngine'];
             self::$host = $conection['host'];
             self::$user = $conection['user'];
             self::$password = $conection['password'];
             self::$dataBase = $conection['database'];
             $this->conecta();
         }
     } else {
         if (!isset(self::$conection[$conection])) {
             if ($conection === '') {
                 die("No se ha indicado el nombre de la conexión a la BD.\n");
             } else {
                 self::$conection[$conection] = $_SESSION['conections'][$conection];
             }
         }
         self::$dbEngine = self::$conection[$conection]['dbEngine'];
         self::$host = self::$conection[$conection]['host'];
         self::$user = self::$conection[$conection]['user'];
         self::$password = self::$conection[$conection]['password'];
         self::$dataBase = self::$conection[$conection]['database'];
         if (is_null(self::$dbLinkInstance)) {
             $this->conecta();
         }
     }
 }
 /**
  * Estable la conexion a la base de datos.
  * Abre el fichero de configuracion '$fileConfig', o en su defecto config/config.yml
  * y lee el nodo $conection donde se definen los parametros de conexion.
  * 
  * Si no se indica valor para el parámetro $conection, se tomarán los valores
  * de la primera conexión definida en el archivo de configuración. De esta forma, y en el caso
  * de trabajar con una sola base de datos, no es necesario indicar el nombre de conexión para
  * cada tabla en el modelo de datos.
  *
  * En entorno de desarrollo los parámetros de conexión se fuerzan a:
  *
  *      user    =   $conection
  *      password=   $conection
  *      dataBase=   $conection
  *
  * 
  * Si la conexion es exitosa, getDblink() devolvera valor y si no getError() nos indica
  * el error producido.
  *
  * @param string $conection Nombre de la conexion, opcional
  * @param string $fileConfig Nombre del fichero de configuracion, opcional
  */
 public function __construct($conection, $fileConfig = '')
 {
     $this->logErrorQueryFile = str_replace("bin/albatronic", "", __DIR__) . "log/error_query.log";
     $this->logQueryFile = str_replace("bin/albatronic", "", __DIR__) . "log/query.log";
     if (is_array($conection)) {
         if (is_null(self::$dbLinkInstance) || self::$host !== $conection['host'] || self::$dataBase !== $conection['database']) {
             self::$dbEngine = $conection['dbEngine'];
             self::$host = $conection['host'];
             self::$user = $conection['user'];
             self::$password = $conection['password'];
             self::$dataBase = $conection['database'];
             $this->conecta();
         }
     } else {
         if (!isset(self::$conection[$conection])) {
             if ($fileConfig == '') {
                 //$fileConfig = $_SERVER['DOCUMENT_ROOT'] . $_SESSION['appPath'] . "/" . $this->file;
                 $fileConfig = str_replace("bin/albatronic", "", __DIR__) . $this->file;
             }
             if (file_exists($fileConfig)) {
                 //echo "busco config {$conection}<br/>";
                 $yaml = sfYaml::load($fileConfig);
                 // Si no se ha indicado el nombre de la conexión, se tomara la primera
                 //if ($conection == '')
                 //    list($conection, $nada) = each($yaml['config']['conections']);
                 self::$conection[$conection] = $yaml['config']['conections'][$conection];
             } else {
                 die("EntityManager []: ERROR AL LEER EL ARCHIVO DE CONFIGURACION. " . $fileConfig . " NO EXISTE\n");
             }
         }
         self::$dbEngine = self::$conection[$conection]['dbEngine'];
         self::$host = self::$conection[$conection]['host'];
         self::$user = self::$conection[$conection]['user'];
         self::$password = self::$conection[$conection]['password'];
         self::$dataBase = self::$conection[$conection]['database'];
         if (is_null(self::$dbLinkInstance)) {
             $this->conecta();
         }
     }
 }