¿Cómo extender EntityRepository en Symfony2?

Tengo este problema. Tengo un método que es repetitivo en todos los repositorys, por ejemplo, este método.

function getAllOrderedBy($column) { $qb = $this->createQueryBuilder('ac') ->select('ac') ->orderBy('ac.' . $column); return $qb->getQuery()->getResult(); } 

Quiero extraerlo en otra superclase, OrderedRepository por ejemplo, y usarla como la clase base para todos los demás repositorys.

Ahora el problema es cómo hacer eso?

Traté de instanciar EntityRepository en el constructor del OrderedRepository, algo así, pero también instanciando allí todos los objetos internos, necesarios para otras cosas, pero realmente no funcionó, y sentí que era el camino equivocado a seguir.

 function __construct() { parent::__construct(); $this->blabla_option = "instantiated"; } 

¿Podría dar un ejemplo de la extensión correcta de EntityRepository de modo que esta clase extendida podría servir como una clase base para otros repositorys?

PD. Soy un principiante en PHP así que discúlpeme si herí sus sentimientos con mi desconocimiento.

Esto es más una cosa de Doctrine2.

Suponiendo que está utilizando anotaciones para su asignación de doctrine, debe declarar qué clase de repository está utilizando en la Entidad:

 /** * @ORM\Entity(repositoryClass="Fully\Qualified\Namespace\To\MyRepository") */ class MyEntity { } 

como se explica aquí: http://symfony.com/doc/2.0/book/doctrine.html#custom-repository-classes .

Luego, puede codificar esta clase personalizada de MyRepository, utilizando la herencia de clases estándar.

Podrías imaginar algo así:

 class OrderedRepository extends EntityRepository { // some extra methods... } class MyRepository extends OrderedRespository {} 

Finalmente, si desea anular el __constructor de su repository, debe inicializar el constructor padre con los mismos argumentos:

 public function __construct($em, Mapping\ClassMetadata $class) { parent::__construct($em, $class); // some extra stuff }