Nuevo en la versión 1.1: Se agregó la integración con Doctrine.
La integración con Doctrine está habilitada de manera predeterminada. Sin embargo, fácilmente puedes la puedes desactivar en tu configuración:
jms_di_extra:
doctrine_integration: false
<jms-di-extra doctrine-integration="false" />
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.