~desarrollokumbia/kumbia/ActiveRecord

« back to all changes in this revision

Viewing changes to db_pool/db_pool.php

  • Committer: Deivinson Tejeda
  • Date: 2009-12-28 16:13:28 UTC
  • Revision ID: deivinsontejeda@gmail.com-20091228161328-w3mbndugqdgeck08
->Añadiendo implementacion del describe en pgsql
->Validando que este cargada la extension PDO
->Utilizando bloque try - catch

Show diffs side-by-side

added added

removed removed

Lines of Context:
51
51
     * @param boolean $new nueva conexion
52
52
     * @return db
53
53
     */
54
 
    public static function factory($connection=null, $new=false)
 
54
    public static function factory($connection=NULL, $new=FALSE)
55
55
    {
56
56
        // carga la conexion por defecto
57
57
        if (!$connection) {
58
58
            $connection = Config::get('config.application.database');
59
59
        }
 
60
        // check for PDO extension
 
61
        if (!extension_loaded('pdo')) {
 
62
            throw new KumbiaException('La Extension PDO es requerida por este adaptador, pero la extension no esta cargada');
 
63
        }
60
64
        
61
65
        $databases = Config::read('databases');
62
66
        $config = $databases[$connection];
82
86
        if (! $new && isset(self::$_connections[$connection])) {
83
87
            return self::$_connections[$connection];
84
88
        }
85
 
        
86
 
        // conecta con pdo
87
 
        $pdo = new PDO($config['type'] . ":" . $config['dsn'], $config['username'], $config['password']);
88
 
        
89
 
        //Si no es para conexion nueva, la cargo en el singleton
90
 
        if (! $new) {
91
 
            self::$_connections[$connection] = $pdo;
 
89
        try {
 
90
            // conecta con pdo
 
91
            $pdo = new PDO($config['type'] . ":" . $config['dsn'], $config['username'], $config['password']);
 
92
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
93
            
 
94
            //Si no es para conexion nueva, la cargo en el singleton
 
95
            if (! $new) {
 
96
                self::$_connections[$connection] = $pdo;
 
97
            }
 
98
            return $pdo;
 
99
                
 
100
        } catch (PDOException $e) {
 
101
            throw new KumbiaException($e->getMessage());
92
102
        }
93
 
        
94
 
        return $pdo;
95
103
    }
96
104
}
 
 
b'\\ No newline at end of file'