Ver Mensaje Individual
  #6 (permalink)  
Antiguo 04/04/2012, 08:05
chemajmb
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Ordenando Repositories en Doctrine y otras dudas doctrine

A ver,

A lo que me refiero con instanciar varias veces el em es a que por ejemplo en este codigo se instancian varias veces el em, tantas veces como veces usas un manejador en tu ejemplo.
Código PHP:
namespace Application/Controller;
 
class 
ProductController extends Controller
{
    public function 
showAction()
    {
        
//DiC container, encargado de ensamblar el manager inyectando las dependencias
        
$product $this->get('product_manager')->findOneBy('slug''my-custom-product');
        
$category $this->get('category_manager')->findAll();
        return array(
'product' => $product'category' => $category);
    }

me imagino que $this->get('X_manager') es un metodo de los controladores tipo un autoload, para cargar/instanciar un manager especifico que le pasas como parametro. Asi que devuelve una instancia del manager que le pasas como parametro. Para instanciar el manager en el metodo get, debes de instanciar antes el EM puesto que es parametro obligatorio del constructor del manejador.
Entonces tanto en
$product = $this->get('product_manager') como en
$category = $this->get('category_manager')
instancias 2 veces, una en cada, el entity manager aunque lo hagas con el mismo bootstrap.
¿ o como se hace ?
¿ Voy bien o me pierdo ? heheehe :)

---

Viendo ese ejemplo me surgen otras dudas/preguntas:
1º.-
¿ Las interfaces simplemente se hacen para poder ver rapidamente que metodos se han implementado de un manejador ?
¿ O cual es el por que de su existencia en este ejemplo ?
Ya se que definen comportamientos y tal, se lo que son las interfaces pero quiero tenerlo mas claro.

2º.-
Código PHP:
namespace Application/Entity;
 
use 
Application/Model/ProductManagerInterface;
 
class 
ProductManager implements ProductManagerInterface
... 
¿ Esta bien tener los manejadores en la misma carpeta que las entidades ?
¿ o las entidades las tiene en namespace Application\Entity\Entities; ?

3º.-
Tengo que leer acerca del uso de namespace y use por que no lo tengo claro, lo comprendo, pero no se como aplicarlo bien realmente, ni que pros tiene el usarlo.
Voy a echar un vistazo, pero si podeis darme una pequeña explicacion os estaria agradecido.

Un saludo.
Gracias por vuestros comentarios y vuestra ayuda de verdad.

Última edición por chemajmb; 04/04/2012 a las 08:18