KumbiaPHP beta2-dev
Framework PHP en español
db.php
Ir a la documentación de este archivo.
00001 <?php
00026 require_once CORE_PATH . 'libs/db/db_base_interface.php';
00030 require_once CORE_PATH . 'libs/db/db_base.php';
00031 
00036 class Db
00037 {
00043     protected static $_connections = array();
00044 
00052     public static function factory ($database = null, $new = false)
00053     {
00054 
00055                 //Cargo el mode para mi aplicacion
00056         if (! $database) {
00057             $database = Config::get('config.application.database');
00058         }
00059                 //Si no es una conexion nueva y existe la conexion singleton
00060         if (isset(self::$_connections[$database])) {
00061                         return self::$_connections[$database];
00062         }
00063 
00064                 return self::$_connections[$database] = self::connect($database);
00065     }
00066 
00074     private static function connect($database)
00075     {
00076         $databases = Config::read('databases');
00077         $config = $databases[$database];
00078 
00079                 // carga los valores por defecto para la conexión, si no existen
00080                 $default = array ('port' => 0, 'dsn' => NULL, 'dbname' => NULL, 'host' => 'localhost', 'username' => NULL, 'password' => NULL);
00081                 $config = $config + $default;
00082 
00083         //Si usa PDO
00084         if (isset($config['pdo'])) {
00085             $dbclass = "DbPdo{$config['type']}";
00086             $db_file = "libs/db/adapters/pdo/{$config['type']}.php";
00087                 } else {
00088                         $dbclass = "Db{$config['type']}";
00089                         $db_file = "libs/db/adapters/{$config['type']}.php";
00090                 }
00091 
00092                 //Carga la clase adaptadora necesaria
00093         if (! include_once CORE_PATH . $db_file){
00094                         throw new KumbiaException("No existe la clase $dbclass, necesaria para iniciar el adaptador");
00095                 }
00096 
00097         return new $dbclass($config);
00098     }
00099 }
 Todo Estructuras de Datos Namespaces Archivos Funciones Variables Enumeraciones