Integrando con Doctrine

Nuevo en la versión 1.1: Se agregó la integración con Doctrine.

Configuración

La integración con Doctrine está habilitada de manera predeterminada. Sin embargo, fácilmente puedes la puedes desactivar en tu configuración:

  • YAML
    jms_di_extra:
        doctrine_integration: false
    
  • XML
    <jms-di-extra doctrine-integration="false" />
    

Inyectando dependencias en repositorios

Si has habilitado integración de Doctrine, ahora puedes inyectar dependencias en repositorios utilizando anotaciones:

use JMS\DiExtraBundle\Annotation as DI;

class MyRepository extends EntityRepository
{
    private $uuidGenerator;

    /**
     * @DI\InjectParams({
     *     "uuidGenerator" = @DI\Inject("my_uuid_generator"),
     * })
     */
    public function setUuidGenerator(UUidGenerator $uuidGenerator)
    {
        $this->uuidGenerator = $uuidGenerator;
    }

    // ...
}

Nota

Si no quieres usar anotaciones, también puedes implementar la Symfony\Componente\DependencyInjection\ContainerAwareInterface en tus repositorios para recibir el contenedor del servicio entero.

Bifúrcame en GitHub