1. Utilizar la arquitectura MVC en aplicaciones web/php
El PDF del documento está disponible |AQUÍ|.
Los códigos del documento están disponibles |AQUÍ|.
El modelo MVC (Modelo-Vista-Controlador) busca separar claramente las capas de presentación, procesamiento y acceso a los datos. Una aplicación web que respete este modelo tendrá la siguiente arquitectura:
![]() |
Esta arquitectura se denomina a menudo arquitectura de tres capas o de tres niveles:
- la interfaz de usuario es la vista (V)
- la lógica de la aplicación es el controlador (C)
- las fuentes de datos son el modelo (M)
La interfaz de usuario suele ser un navegador web, pero también podría ser una aplicación autónoma que, a través de la red, enviaría solicitudes HTTP al servicio web y daría formato a los resultados que este le envía. La lógica de la aplicación está formada por los scripts que procesan las solicitudes del usuario. La fuente de datos suele ser una base de datos, pero también pueden ser simples archivos planos, un directorio LDAP, un servicio web remoto, etc. Al desarrollador le conviene mantener una gran independencia entre estas tres entidades para que, si una de ellas cambia, las otras dos no tengan que cambiar, o lo hagan mínimamente.
La arquitectura MVC se adapta bien a aplicaciones web escritas con lenguajes orientados a objetos. El lenguaje PHP (4.x) no está orientado a objetos. No obstante, se puede hacer un esfuerzo por estructurar el código y la arquitectura de la aplicación para acercarse al modelo MVC:
- Se colocará la lógica de negocio de la aplicación en módulos separados de los módulos encargados de controlar el diálogo solicitud-respuesta. La arquitectura MVC queda así:
![]() |
En el bloque [Logique Applicative], se pueden distinguir:
- el programa principal o controlador, que es la puerta de entrada a la aplicación.
- el bloque [Actions], conjunto de scripts encargados de ejecutar las acciones solicitadas por el usuario.
- el bloque [Classes métier], que agrupa los módulos PHP necesarios para la lógica de la aplicación. Son independientes del cliente. Por ejemplo, la función que permite calcular un impuesto a partir de cierta información que se le proporciona en los parámetros no tiene que preocuparse por cómo se han obtenido estos.
- El bloque [Classes d'accès aux données], que agrupa los módulos PHP que obtienen los datos necesarios para el controlador, a menudo datos persistentes (BD, archivos, etc.).
- los generadores de las vistas enviadas como respuesta al cliente.
En los casos más sencillos, la lógica de la aplicación suele reducirse a dos módulos:
- el módulo [contrôle], que se encarga del diálogo cliente-servidor: procesamiento de la solicitud, generación de las distintas respuestas
- el módulo [métier], que recibe del módulo [contrôle] los datos que debe procesar y le proporciona a su vez los resultados. Este módulo [métier] gestiona entonces por sí mismo el acceso a los datos persistentes.

