Buenísimo, Juan. Entonces, se trata de inyectar interfaces en el constructor (en vez de clases concretas) en los servicios o donde lo necesitemos para desacoplarnos; ahora bien, si inyectas una clase concreta en otra (ejemplo, un servicio en un controlador), entiendo que estás usando el contenedor de inyección de dependencias de Symfony; cuando creas un test para dicho controlador, puedes mockear el servicio sin problema. ¿Sería correcto o en realidad no estoy usando el patrón y el contenedor va por otro lado?. Gracias
Sí, puedes hacer un mock del servicio sin problemas. Lo de las interfaces es para cuando necesites, por reglas de negocio por ejemplo, inyectar distintos servicios en un controlador o otro servicio. De hecho, crear interfaces para servicios que solo van a tener una implementación está considerado una mala práctica. Sobre todo si es un servicio de aplicación o dominio en el que ya no tienes dependencias externas
Esta explicación hubiese necesitado cuando empecé a programar
Esa es justa la razón por la que hago esta serie. A mi es de lo que más me costó al principio. Una serie como esta habría sido oro en 2012-2013 xDDD
Muy bien explicado! Esta serie es muy buena
Sigue así! Da gusto ver explicaciones claras y concisas.
Muchas gracias ^^
Conocer a fondo las DI cambió mi forma de programar para siempre. Buen video!
Son muchas las ventajas. Además usando inversión de dependencias, como es el caso de este vídeo, es mejor todavía
Excelente explicacion, solamente había escuchado el termino por usar Symfony.
Buenísimo, Juan. Entonces, se trata de inyectar interfaces en el constructor (en vez de clases concretas) en los servicios o donde lo necesitemos para desacoplarnos; ahora bien, si inyectas una clase concreta en otra (ejemplo, un servicio en un controlador), entiendo que estás usando el contenedor de inyección de dependencias de Symfony; cuando creas un test para dicho controlador, puedes mockear el servicio sin problema. ¿Sería correcto o en realidad no estoy usando el patrón y el contenedor va por otro lado?. Gracias
Sí, puedes hacer un mock del servicio sin problemas. Lo de las interfaces es para cuando necesites, por reglas de negocio por ejemplo, inyectar distintos servicios en un controlador o otro servicio. De hecho, crear interfaces para servicios que solo van a tener una implementación está considerado una mala práctica. Sobre todo si es un servicio de aplicación o dominio en el que ya no tienes dependencias externas
Excelente 👌.