47. Qué es el patrón MVC - Aprender a crear nuestro propio framework PHP

Hasta ahora hemos visto el lenguaje de programación PHP por un lado, y el lenguaje de consulta SQL utilizando MySQL por otro. Ahora toca unir ambas tecnologías, o en otras palabras, no vimos como realizar un CRUD en PHP.

CRUD viene de las siglas (CREATE, READ, UPDATE and DELETE).

A lo largo de estos capítulos que vienen vamos a aprender como estructurar nuestro proyecto para poder trabajar de la manera más óptima posible, por lo que en esta tercera parte del curso vamos a ver como hacer un CRUD pero también como estructurar nuestro proyecto, y para ello vamos a basarnos en un patrón de arquitectura muy conocido denominado MVC (Modelo Vista Controlador).

Patrón de arquitectura MVC

El Modelo Vista Controlador nos indica que deberíamos separar nuestro código dependiendo de la responsabilidad que tenga éste, y lo va a agrupar en tres grandes grupos:

  • Modelo
  • Vista
  • Controlador

Modelo

En el modelo deberíamos colocar todo el código que se encargue de conectarse a una base de datos y hacer peticiones a nuestra base de datos, por ejm, el código para poder crear un nuevo registro debería encontrarse aquí, lo mismo con las demás tareas siempre y cuando las demás tareas tengan que ver con la base de datos.

Vistas

Vamos a tener otro grupo denominado vistas en las cuales tenemos que colocar código HTML. Todo lo que tiene que ver con HTML, como formularios, imágenes, el header, el footer... ha de colocarse aquí

Controlador

Se trata de la parte más importante de nuestra aplicación, el cerebro. En los controladores vamos a colocar la lógica del negocio. 

Flujo de la aplicación

Cuando un usuario introduzca una URL en un navegador, a partir de la URL vamos a tener que mostrarle diferente contenido, por lo que dependiendo de lo que el usuario haya escrito en la URL vamos a asignarle el control de la ruta de dicha URL a un determinado controlador. En ese controlador tenemos que haber definido que es lo que se va a realizar. Si necesitamos conectarnos con la base de datos, lo que hace este controlador es llamar al modelo encargado de realizar todas estas consultas para que el modelo haga la consulta a la base de datos y le devuelva esos valores, una vez obtenidos esos valores, el controlador dice OK y llama a la vista que se va a encargar de mostrar todo ese contenido, le pasa la información que el modelo le ha devuelto para poder imprimir y una vez que la vista lo ha colocado dentro del archivo HTML, retorna al controlador, y finalmente el controlador muestra esa vista con todos los datos mostrados en la pantalla o el ordenador de la persona que lo solicitó.

Como podemos ver, este controlador no se encarga de hacer la consulta a la base de datos, ni tampoco escribir código HTML, su función es dirigir.

Si utilizamos este patrón, no vamos a escribir todo en un mismo archivo, sino que vamos a tener que separar responsabilidades.