Ver Mensaje Individual
  #13 (permalink)  
Antiguo 23/03/2012, 16:19
chemajmb
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Empezando con Doctrine 2.2.1

Cita:
Iniciado por GatorV Ver Mensaje
...
Lo que tienes que hacer es ver como inyectar desde tu index.php el entityManager a tus modelos para que puedas de ahí cargar repositorios, y obtener tus objetos con los datos ya listos.
...
ok, entonces yo voy a tener mis modelos que van a tener como tu muy bien has dicho, la logica de mi negocio, que no es mas que los metodos que me van a servir para hacer los requerimientos de mi negocio. En estos metodos y en mis modelos es donde me ayudare de las Entidades de Doctrine. Es por eso que en los modelos necesito tener el EntityManager para poder tener acceso a cualquier entidad, desde cualquier modelo. Que las entidades no es ni mas ni menos que el mapeado de la base de datos.

Creo que no voy mal encaminado, muchisimas gracias por la ayuda. No tengo claro 100% si los modelos y las entidades de doctrine van por separado, creo que si, si me lo podeis aclarar. Cuando digo si van por separado es a si son clases php implementadas por separado.

Si no voy mal encaminado, ahora bien estoy pensando como inyectar el EM desde mi index.php. La cosa es que instancio los controladores en el lanzador.php y cada controlador instancia mediante una funcion "cargaModelo" el/los modelos que necesita. ¿ podria quizas incluir en el index el lanzadorDoctrine, pasarselo a los controladores y que este se lo pase a los modelos en los constructores y que lo guarden como una propiedad ?

¿ o seria mejor hacer un modelo base con un constructor que haga un include del siguiente codigo, y que guarde la referencia del EntityManager en una propiedad de la clase para que asi todos los modelos la tengan ?

LanzadorDoctrine.php
Código PHP:
<?php

use DoctrineORMToolsSetup;
use 
DoctrineORMEntityManager;

require_once 
'Doctrine/Common/ClassLoader.php';

$loader = new DoctrineCommonClassLoader("Doctrine");
$loader->register();

$dbParams = array(
    
'driver' => 'pdo_mysql',
    
'user' => DB_USER,
    
'password' => DB_PASS,
    
'dbname' => DB_NAME
);
$path = array( DIR_ENTIDADES );
$config Setup::createAnnotationMetadataConfiguration($pathtrue);
$entityManager EntityManager::create($dbParams$config);

?>

Última edición por chemajmb; 23/03/2012 a las 16:28