Buscamos por distintos espacios para así regalarte la solución para tu inquietud, si continúas con alguna difcultad puedes dejarnos un comentario y contestamos porque estamos para servirte.
Solución:
Aquí hay algunas cosas que debe considerar:
- No puedes hacer MVC clásico en PHP. en cambio tenemos inspirado en MVC patrones
- Existe una relación 1: 1 entre las instancias de vista y controlador, cuando se implementa para web
- El modelo en MVC no es una clase. Es una capa que contiene muchas clases diferentes.
- View no es una plantilla tonta, sino una instancia de clase, que se ocupa de la lógica de presentación
Ver en MVC basado en web
Como se indicó anteriormente, puntos de vista en MVC y los patrones inspirados en MVC son responsables de la lógica de presentación. Eso abarca cosas como mostrar mensajes de error y paginación. Para ello, cada vista puede manejar varias plantillas.
View recibe información de la capa del modelo y actúa en consecuencia. La forma en que la información de la capa del modelo termina en las vistas es una de las diferencias más significativas en los patrones similares a MVC:
-
MVC clásico patrón
Las estructuras de la capa del modelo envían la información a la vista, cuando se ha alterado el estado del modelo. Esto se hace a través del patrón de observador.
-
Modelo 2 MVC y hmvc patrones
View tiene acceso directo a la capa del modelo y puede solicitarle información. Este es el más cercano al patrón original.
-
MVVM y jugador más valioso patrones
La vista recibe información a través del controlador, que a su vez la ha solicitado a la capa del modelo. La diferencia adicional en los patrones se deriva de lo que se hace con los datos antes de pasarlos a la vista.
Lo que parece tener ahora es en realidad solo una plantilla. Similar a uno, que se describe en este artículo. Terminas con una estructura que no tiene lugar para contener la lógica de presentación. A largo plazo, esto hará que la lógica de presentación se inserte en el controlador.
Entonces, ¿qué pasa con ese mensaje de “bienvenida”?
Para mostrar el mensaje de bienvenida, su vista debe solicitar desde la capa del modelo el nombre del usuario actual. Si la capa del modelo devuelve algún tipo de estado de error, seleccione la plantilla de mensaje de error e insértela en el diseño.
En caso de que el nombre del usuario se haya recuperado de la capa del modelo sin problemas, seleccione la plantilla que contendría el saludo, establezca el valor en la plantilla y lo represente.
¿En qué orden se deben cargar las piezas?
La idea de que el controlador debe inicializar el modelo y la vista proviene de una interpretación muy primitiva de MVC para web. Patrón conocido como controlador de página, que intentó injertar MVC directamente en static páginas web.
En mi opinión, este debería ser el orden:
-
Modelo
Inicializa la estructura, a través de la cual se ocupará de la capa del modelo. Lo más probable es que sea algún tipo de fábrica de servicios, lo que le permitirá construir cosas como
Authentication
servicio de inicio de sesión yLibrary
servicio de tramitación de documentos. Ese tipo de cosas. Escribí un comentario un poco largo sobre la estructura de la capa del modelo anteriormente. Tu podrias encontrar esto útil. -
Vista
Crea una instancia de vista basada en la información que recopiló del mecanismo de enrutamiento. Si está implementando modelo2 o hmvcentonces su vista requerirá una instancia de Fábrica de servicios en el constructor.
Si está implementando MVVM o jugador más valiosoentonces el constructor de la vista no tiene requisitos especiales.
-
Controlador
Esta es la última estructura, que crea, porque el controlador es responsable de enviar comandos tanto a la vista como a la capa del modelo, que luego cambian el estado de ambos. Por lo tanto, el controlador debe esperar recibir tanto la vista como la fábrica de servicios en el constructor.
Una vez que se han inicializado los elementos básicos de MVC, llama a un método en el controlador y representa la vista actual.
Solo tenga en cuenta que esta es una descripción muy simplificada.
Realmente puede poner cualquier cosa en la vista que desee, pero para adherirse mejor a la forma de hacer las cosas de MVC, debe restringir PHP en la vista a simple echo
s o print
s (posiblemente también bucles muy pequeños, aunque incluso esos pueden calcularse previamente en el controlador/modelo). Dado que esa es la única forma de obtener contenido dinámico, sería un poco tonto decir que no están permitidos.
La idea de la vista es dejar que tenga una apariencia más HTML, de modo que los desarrolladores front-end o las personas que no conocen PHP puedan trabajar fácilmente con el archivo sin confundirse.
Actualizar
Para obtener más información sobre MVC en general, puede ver cualquiera de estos (hay un montón de tutoriales por ahí):
http://blog.iandavis.com/2008/12/09/cuáles-son-los-beneficios-de-mvc/
http://php-html.net/tutorials/modelo-vista-controlador-en-php/
http://www.tonymarston.net/php-mysql/modelo-vista-controlador.html
Para ver ejemplos concretos de PHP usando MVC, sugiero descargar algunos de los marcos más destacados (como CodeIgniter, Symfony o Drupal) y simplemente mirar el código. Intente descubrir cómo funciona y luego recree la funcionalidad para un sistema simple basado en artículos.