/******** 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:
Comentarios (Atom)