Hola estimado foro, buenas tardes (aquí en Argentina).
Consulto porque solo hay información en inglés al respecto pero no hay mucho para Yii2.
Alguien se vio con la necesidad de aplicar el patrón de diseño repositorio?
Pregunto porque mi idea es separar un poco la lógica de los modelos que genero con gii, active record, y luego los CRUDS, ya que me encuentro con algunos métodos que nada tienen que ver con el acceso a los datos, sino son más lógica de negocios o decisiones del dominio.
Hay muchísima información al respecto, de hecho en la documentación de Yii2 dice que es sugerencia mantener controladores flacos y modelos gordos, pero también dice que es extensible y que es posible manejar la estructura de la aplicación como uno lo desee y combinar técnicas de diseño.
Mi idea es no caer en el sobre análisis pero tampoco mezclar peras con bananas, hablando en criollo. Por lo cual métodos que sean para representar fechas de la entidad, o subida de imagenes relacionadas, o seteo de domicilios y datos de contacto en tablas relacionadas, no se si se deben alojar en el mismo modelo active record.
He pensado utilizar interfaces y luego repositorios de clase que puedan implementarlas para luego inyectar vía constructor el modelo active record y así desacoplar un poco las dependencias. Para ello en el controlador me debería quedar menos cantidad de código y en los modelos active record me queden solo los datos y validaciones, comportamientos y eventos específicos a esa entidad.
Es más un tema de diseño y concepto que busco interactuar con colegas que hayan pasado por lo mismo.
He intercambiado con Alexander en el foro de ingles, y me comento que puedo utlizar el DI container para las dependencias y alguna clase repositorio para apoyarme, pero no se si esto lo debo hacer ya que sería un patrón de diseño en cada una de las entidades o solo en las que sea necesario y fundamentalmente si ES REALMENTE NECESARIO.
Estoy mareado, perdón. Saludos a todos!!!