He estado leyendo acerca del diseño de MVC desde hace un tiempo y parece oficialmente que View llama a objetos y métodos en el Modelo, crea y genera una vista.MVC: Controlador de vista de modelo: ¿la vista llama al modelo?
Creo que esto es principalmente incorrecto.
El controlador debe actuar y recuperar/actualizar objetos dentro del modelo, seleccionar una vista adecuada y pasarle la información para que se muestre. Solo las variables de PHP básicas y rudimentarias/simples deben aparecer dentro de la Vista.
Si la Vista obtiene la información que necesita para mostrarse desde el Modelo, seguramente habrá una gran cantidad de PHP dentro de la Vista, violando por completo el punto de separación de la lógica de presentación.
Creo que es mejor ver la vista más como una plantilla. MVT como me gusta verlo. El único inconveniente de tener la información recuperada del controlador y pasarla a la Vista es que la Vista ahora depende del controlador. No se puede llamar directamente a la Vista para visualizar una página, tiene que pasar por el Controlador, pero, nuevamente, este es el * propósito * completo de un controlador - para enrutar las solicitudes HTTP GET/POST. –
"Personalmente, no permito que la Vista lea directamente desde el Modelo." - ¿También cuando usas AJAX? –
@ Mr.Pallazzo también. Las solicitudes de Ajax aún son procesadas por el controlador, no directamente por el modelo. No existe diferencia conceptual desde el punto de vista del servidor entre una solicitud normal y una Ajax. La diferencia está en la salida y en el cliente. –