Introducción al patrón MVC
en PHP
Hay muchos desarrolladores PHP
a los que les es complicado pasar de trabajar sin framework a incluir un
framework en sus desarrollos. Mucho se debe a que la mayoría de los frameworks
profesionales de PHP funcionan con el patrón MVC y este parece difícil de
comprender en un principio.
¿Qué es MVC?
MVC
(o Modelo Vista Controlador) es un patrón de arquitectura de software que
separa los datos y la lógica de negocio de la interfaz de usuario en una
aplicación. El patrón fue creado por Trygve Reenskaug en los setenta, aunque no
fue hasta 1988 que se expresó como concepto general en un artículo.
En
la primera definición de MVC el controlador era definido como "el módulo
que se ocupa de la entrada" y la vista era "el módulo que se ocupa de
la salida". El controlador no era el que invocaba a la vista, ni le pasaba
los datos. Hay que tener en cuenta que el patrón MVC se postuló en ese entonces
para las aplicaciones de escritorio (los pedidos tienen estado); mientras que
actualmente se lo utiliza sobre todo en aplicaciones web (pedidos sin estado,
debido al protocolo HTTP). Actualmente, el controlador es un intermediario de
la comunicación entre el modelo y la vista y unifica la validación.
Modelo
Vista Controlador
El modelo
En
su forma más simple, el modelo almacena datos que son accedidos desde la vista
y escritos por el controlador. El modelo es la parte más compleja del sistema y
contiene toda la lógica que es específica de la aplicación. Además, incluye a
las entidades de dominio. No posee conocimiento de los controladores o vistas
que pueden utilizarlo.
Un
modelo, por ejemplo, puede representar a un "usuario" en el sistema y
manejar todas las operaciones que puede llevar a cabo un usuario.
El
modelo no es:
o
un simple acceso a datos
o
una clase que representa una tabla en
la base de datos
La vista
Se
encarga de mostrarle al visitante los resultados del sistema, es el encargado
de generar el código HTML. Accede de forma directa al modelo y lo consulta para
obtener los datos. Puede crear llamadas al controlador. Como dijimos antes, en
MVC original, las vistas obtienen los datos directamente, no necesitan que el
controlador se los provea.
La
vista no:
o
está ausente de lógica
o
recibe datos del controlador
El controlador
El
controlador se encarga de tomar la entrada del usuario y modificar el modelo si
es requerido. Si no existe interacción del usuario, no es necesario utilizar el
controlador.
El
controlador accede al modelo, pero no posee ninguna lógica para mostrarlo, todo
lo que hace es responder a los pedidos del usuario.
El
controlador no es:
o
un mediador entre la vista y el modelo
o
el lugar donde se inicializan las
vistas
Flujo del sistema
El
programa va a funcionar de la siguiente manera:
El modelo, la vista y el controlador
se inicializan
Se muestra la vista al usuario leyendo
datos del modelo
El usuario interactúa con la vista, lo
cual llama a una acción específica del controlador
El controlador modifica el modelo
La vista se refresca, mostrando el
cambio en el modelo






0 comentarios:
Publicar un comentario