Repositorios de entidades personalizados en Symfony2

Para abstraer la lógica de negocio de los controladores podemos crear repositorios de entidades personalizados, esto nos permite llevarnos todo el tema del manejo de la base de datos a una clase aislada del controlador. Esto es lo que yo llamaba en otros frameworks como modelo o modelo de consulta.

Para crear un repositorio en el que añadir nuevos métodos para el modelo tenemos que crear un fichero, por ejemplo, Web/BlogBundle/Entity/PostsRepository.php

<?php
namespace Web\BlogBundle\Entity;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\Tools\Pagination\Paginator;

//Extendemos al repositorio de entidades y nos creamos un modelo convencional
class PostsRepository extends EntityRepository{

//Métodos para la lógica de negocio

}

Ahora tendremos que indicarle a la entidad de Doctrine donde está la clase repositorio personalizada. En nuestro caso como tenemos la definición de la entidad y las relaciones en ficheros yaml, vamos al fichero Posts.orm.yml y añadimos la siguiente línea

repositoryClass: Web\BlogBundle\Entity\PostsRepository

Con esto ya podríamos añadir todos los métodos que queramos en el repositorio.

Más información:
Symfony2 Doctrine Custom entity repositories

Víctor Robles WEB

Autor: Victor

Desarrollador web - Formador online - Blogger

Compartir este post