Implementar un Modelo Vista Controlador en PHP

Introducción

Según la wikipedia (MVC en la wikipedia), el Módelo Vista Controlador (o Model View Controller en inglés) es un patrón de arquitectura de software. Se utiliza al desarrollar aplicaciones separando tres componentes: el modelo, que es el origen de los datos, la vista, que es la capa de presentación al usuario, y el controlador, que es el manejador de las acciones del usuario contra la aplicación.

En PHP disponemos de muchos frameworks (Symfony, CodeIgniter...) para desarrollar nuestras aplicaciones según este patrón, pero... ¿cómo podríamos hacerlo nosotros mismos desde cero? En ocasiones tenemos que reinventar ruedas (para optimizar, para ampliar funcionalidades, para aprender...) y saber valernos por nosotros mismos es una gran cualidad personal.

A lo largo de este artículo vamos a ver un ejemplo de cómo aplicar el MVC en una aplicación web, concretamente en la web http://restless-souls.net que programé hace tiempo y he mejorado para esta ocasión (el diseño actual es principalmente de Martxel, un miembro de la comunidad PHP hispano). Podéis usar el modelo de la web para crear vuestras propias aplicaciones en PHP; tenéis todo el permiso para reutilizar y modificar el código según os venga en gana :). No creáis que el artículo es una propaganda de mi web porque si la visitais veréis que a fecha de hoy es un simple roadmap del proceso de creación de un videojuego online.

Es importante indicar que, para que podáis seguir el artículo con fluidez, es indispensable que conozcáis muy bien el uso de la programación orientada a objetos en PHP5. Si hay algún concepto que no os queda muy claro podéis leer mi artículo Programación orientada a objetos en PHP5 y tendréis también una referencia de algunas técnicas que he usado en el ejemplo que nos concierne.

Una vez que hayáis terminado de leer el artículo tendréis una idea de cómo se utiliza el MVC, y seguramente seréis capaces de implementarlo de una manera eficiente y elegante (no por cómo lo he hecho yo, sino por cómo se os ocurrirá a vosotros).

Archivos

Todo de lo que está compuesto mi web, tanto las plantillas como los scripts PHP e incluso las imágenes, os lo podéis descargar desde este enlace.

Descargar contenido del artículo

Recordad que el archivo de configuración de la web ("/config/main.php") es el que define el acceso al servidor de base de datos (los datos de acceso que tiene ahora mismo no son reales).

También contiene el volcado de la base de datos en el archivo "RSO_website-data.sql". Si sólo queréis la estructura de la base de datos, podéis usar el archivo "RSO_website.sql".

Resumen

Un ejemplo completo de cómo implementar el Modelo Vista Controlador (MVC) con PHP, basado en un desarrollo real. Contiene el código fuente para descarga y para poder seguir los diferentes ejemlpos.

Índice

  1. 1. Introducción
  2. 2. Modelo: la base de datos
  3. 3. Modelo: abstracción de la base de datos
  4. 4. Modelo: interfaz principal
  5. 5. Modelo: extensiones
  6. 6. Vista
  7. 7. Controlador
  8. 8. La aplicación
  9. 9. El main

Otros artículos