Actualmente estoy refactorizando mi biblioteca PHP basada en Zend Framework para que no use un localizador de servicios para (constructor) inyección de dependencia (DI). Siento que mejora mucho mi código, pero no estoy seguro si debería inyectar todas las dependencias. Un localizador de servicios parece más fácil para las dependencias que se usan mucho y son inespecíficas. Tengo las siguientes dependencias a las que todavía accedo usando un localizador de servicios:Inyección de dependencia: ¿debería inyectar todo o usar un localizador de servicios para algunos objetos?
- Un objeto Zend_Translate (necesito traducir mensajes en todas partes).
- objeto A Zend_Locale (almacena el idioma actual)
- Un Zend_Config objeto (un montón de cosas son configurables por el INI-archivo)
- Las instancias de clases de utilidad (por matriz y la manipulación de cadenas)
Si inyecté estas dependencias, desordenarían mis constructores y distraerían de las dependencias específicas. Para las pruebas, puedo configurar estas dependencias en mi localizador de servicios antes de ejecutar las pruebas. El pragmático en mí dice que me está yendo bien, pero el purista dice que debo ir todo el tiempo con DI.
¿Recomendaría DI para este tipo de objetos o no?
no se pueden responder. Al parecer, sabes que hay pros y contras. Depende de usted tomar una decisión consciente. – Gordon
Bueno, la pregunta es: ¿recomendaría DI para eso o no, por lo que la pregunta es clara en ese sentido. – markus
Hay muy pocas preguntas que voté y VOTO para cerrar. Es una pregunta excelente, pero parece que depende de usted tomar una decisión. Es su aplicación y conoce los pros y los contras del tema. –