/******** Archivo bootstrap.php **********************/ require_once(dirname(__FILE__) . '/doctrine-1.2.1/Doctrine.php'); spl_autoload_register(array('Doctrine', 'autoload')); $pathmodels=array(); array_push($pathmodels,dirname(__FILE__)."/models/cayetano"); array_push($pathmodels,dirname(__FILE__)."/models/plantillas"); Doctrine::loadModels($pathmodels); $dsn = 'pgsql:dbname=cayetano;host=127.0.0.1'; $user='postgres'; $password='123456'; //$dbh = new PDO($dsn, $user, $password); $conn = Doctrine_Manager::connection(array($dsn, $user, $password));En el ejemplo anterior dentro de la carpeta "models” se ha creado la carpeta “cayetano” y la carpeta “plantillas”.
- EL CONOCIMIENTO ES Y DEBE SER LIBRE -
miércoles, febrero 03, 2010
Cargar múltiples modelos con Doctrine
Doctrine nos brinda la posibilidad de partir nuestro “modelo” en varios “sub-modelos” consiguiente con esto separar la lógica del negocio.
martes, febrero 02, 2010
Multiples Base de Datos con Doctrine
Cuando queremos intercambiar la conexión entre dos o más base de datos en la misma aplicación, lo podemos realizar modificando el archivo bootstrap.php:
Para probar el uso lo podemos hacer del siguiento modo:
/************** Archivo bootstrap.php **********************/ require_once(dirname(__FILE__) . '/doctrine-1.2.1/Doctrine.php'); spl_autoload_register(array('Doctrine', 'autoload')); Doctrine::loadModels('models'); $manager = Doctrine_Manager::getInstance(); $manager->setAttribute(Doctrine::ATTR_VALIDATE, Doctrine::VALIDATE_ALL); $manager->setAttribute(Doctrine::ATTR_AUTOLOAD_TABLE_CLASSES, true); $dsn = 'pgsql:dbname=cayetano;host=127.0.0.1'; $user='postgres'; $password='123456'; //nombramos a esta conexion como 'cayetano' $conn = Doctrine_Manager::connection(array($dsn, $user, $password),'cayetano'); $dsn = 'pgsql:dbname=documentacion;host=127.0.0.1'; $user='postgres'; $password='123456'; //nombramos a esta conexion como 'documentacion' $conn = Doctrine_Manager::connection(array($dsn, $user, $password)),'documentacion');
Para probar el uso lo podemos hacer del siguiento modo:
/************** archivo prueba.php **********************/ require_once('bootstrap.php'); $manager = Doctrine_Manager::getInstance(); $manager->setCurrentConnection('cayetano'); //Accedemos a la BD cayetano $q = Doctrine_Query::create() ->select('t.*,u.log_usu,u.pass_usu') ->from('Trabajador t') ->innerJoin('t.UsuIntranet u'); print_r($q->execute(array(),Doctrine::HYDRATE_ARRAY)); $manager = Doctrine_Manager::getInstance(); $manager->setCurrentConnection('documentacion'); //Accedemos a la BD documentacion $q = Doctrine_Query::create() ->from('Empleado d') ->leftJoin('d.EmpleadoCargo g') ->leftJoin('g.Cargo h') ->leftJoin('h.Oficina w') ->where('d.idusuario = ?', $idUsuario) ->orderBy('w.descripcion,h.descripcion,g.id'); print_r($q->execute(array(),Doctrine::HYDRATE_ARRAY));
Suscribirse a:
Entradas (Atom)