Вы находитесь на странице: 1из 13

PATRONES DE DISEO IMPLEMENTADOS CON PHP

26/04/2013

PATRN DE DISEO MODELO-VISTA-CONTROLADOR MVC

26/04/2013

The MVC pattern


Modelo Vista Controlador (MVC) es un patrn de arquitectura de software que separa los datos de una aplicacin, la interfaz de usuario, y la lgica de negocio en tres componentes distintos. El patrn de llamada y retorno MVC, se ve frecuentemente en aplicaciones web, donde la vista es la pgina HTML con el cdigo que provee de datos dinmicos a la pgina. El modelo es el Sistema de Gestin de Base de Datos y la Lgica de negocio, y el controlador es el responsable de recibir los eventos de entrada desde la vista.
Un diagrama sencillo que muestra la relacin entre el modelo, la vista y el controlador. Nota: las lneas slidas indican una asociacin directa, y las punteadas una indirecta
26/04/2013 3

The MVC pattern


COMPOMENTES MVC Modelo: Es la representacin especfica de la informacin con la cual el sistema opera. Interacta con la vista y su controlador facilitando la presentacin de datos complejos. El sistema tambin puede operar con ms datos no relativos a la presentacin, haciendo uso integrado de otras lgicas de negocio y de datos afines con el sistema modelado. En resumen, se encarga de interactuar con la base de datos y tambin ejecutar reglas de negocio. Vista: Este presenta el modelo en un formato adecuado para la interaccin, usualmente la interfaz de usuario. Es el cdigo HTML que se muestra al usuario, con la informacin proveniente del controlador Controlador: Este responde a eventos, usualmente acciones del usuario, e invoca peticiones al modelo y, probablemente, a la vista. Procesa las peticiones de la pgina web (vista), y enva estos datos a la capa modelo, para que esta le devuelva la informacin adecuada para mostrarla en la capa vista.
26/04/2013 4

The MVC pattern


MODO DE OPERACION DE UNA IMPLEMENTACION MVC Aunque se pueden encontrar diferentes implementaciones de MVC, el modo de operacin generalmente es el siguiente:
1. El usuario interacta con la interfaz de usuario de alguna forma (por ejemplo, el usuario pulsa un botn, enlace, etc.) El controlador recibe (por parte de los objetos de la interfaz-vista) la notificacin de la accin solicitada por el usuario. El controlador gestiona el evento que llega, frecuentemente a travs de un gestor de eventos (handler) o callback. El controlador accede al modelo, actualizndolo, posiblemente modificndolo de forma adecuada a la accin solicitada por el usuario (por ejemplo, el controlador actualiza el carro de la compra del usuario). Los controladores complejos estn a menudo estructurados usando un patrn de comando que encapsula las acciones y simplifica su extensin.

2.

3.

26/04/2013

MODO DE OPERACION DE UNA IMPLEMENTACION MVC


4.

The MVC pattern

5.

El controlador delega a los objetos de la vista la tarea de desplegar la interfaz de usuario. La vista obtiene sus datos del modelo para generar la interfaz apropiada para el usuario donde se reflejan los cambios en el modelo (por ejemplo, produce un listado del contenido del carro de la compra). El modelo no debe tener conocimiento directo sobre la vista. Sin embargo, se podra utilizar el patrn Observador para proveer cierta direccin entre el modelo y la vista, permitiendo al modelo notificar a los interesados de cualquier cambio. Un objeto vista puede registrarse con el modelo y esperar a los cambios, pero aun as el modelo en s mismo sigue sin saber nada de la vista. El controlador no pasa objetos de dominio (el modelo) a la vista aunque puede dar la orden a la vista para que se actualice. Nota: En algunas implementaciones la vista no tiene acceso directo al modelo, dejando que el controlador enve los datos del modelo a la vista. La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo nuevamente.
6

26/04/2013

The MVC pattern report.php (implementacin directa)

26/04/2013

Observaciones: En la misma pagina nos conectamos al servidor (solo funcionara si es MySQL) y seleccionamos una base de datos. Realizamos una consulta (no hay manejo de errores y/o excepciones). Pintamos el cdigo HTML (combinamos cdigo HTML dentro del cdigo PHP, dejando los tags (<tr>, <td>) ilegibles para la sistemasuni 7 persona que implemente los estilos).

The MVC pattern


PRIMERA IMPLEMENTACIN Usando un Controlador y una Vista. El archivo anterior report.php, lo separaremos en dos, uno se llamar controlador.php y el otro vista.php. controlador.php

26/04/2013

PRIMERA IMPLEMENTACIN vista.php

The MVC pattern

De esta manera tenemos separado en el controlador.php casi todo el cdigo php con la lgica de negocios, mientras que en vista.php solo recorremos un array con datos.
26/04/2013 9

The MVC pattern


PRIMERA IMPLEMENTACIN Si queremos utilizar nuevamente el listar articulo en otra pagina, tendramos que reescribir el controlador.php de nuevo, lo cual no es eficiente. Para solventar eso en la siguiente implementacin separaremos el controlador en dos archivos (modelo.php y controlador.php) modelo.php

26/04/2013

10

PRIMERA IMPLEMENTACIN controlador.php


Despus de esta separacin el controlador quedara tan solo como un agente para pasar datos del modelo hacia la vista, pero en aplicaciones ms complejas el controlador es quien realiza las tareas de autenticacin de usuarios, manejo de sesiones, filtrar y validar entradas de datos por GET o POST.

vista.php

26/04/2013

11

PRIMERA IMPLEMENTACIN Para complementar la implementacin, demos respuesta a la siguiente pregunta: Qu pasara si cambiamos el Gestor de Base de Datos? Esto impactara en todas las funciones Mysql del modelo (mysql_connect, mysql_query,), reemplazarlas por las nuevas nos tomara mucho tiempo. Para hacer un mejor uso de MVC o mejor dicho cambiando el patrn un poco, se podra separar el modelo en dos capas:
La capa de Acceso a Datos La capa de Abstraccin de la Base de Datos

Si se diera el caso de cambiar de gestor de base de datos, solo tendramos que actualizar la capa de abstraccin de la base de datos.
26/04/2013 12

PRIMERA IMPLEMENTACIN modelo.php

Cdigo del modelo despus de la separacin en capas

26/04/2013

13

Вам также может понравиться