Modelo vista controlador en Laravel - MVC

- Andrés Cruz

In english

El patrón MVC es uno de los muchos patrones de diseño de software que existen en la actualidad, uno de los más empleados y del cual surgieron numerosas variantes como MTV, MVP, MVA, MVVM y un largo etc; como puedes suponer, es un patrón escalable, adaptable y si tiene tantas variantes significa que tiene un gran potencial; frameworks como Laravel y por supuesto CodeIgniter, lo emplean para organizar nuestro código, que sea sencillo de mantener, adecuar cambios, mantenerlo y otros aspectos relacionados con los lineamientos que debemos de seguir para desarrollar cualquier tipo de aplicación.

Laravel usa el patrón Modelo, Vista, Controlador (MVC); esto mantiene cada capa como partes separadas, pero funciona en conjunto como un todo:

  1. Los modelos administran los datos de la aplicación y ayudan a hacer cumplir las reglas comerciales especiales que la aplicación pueda necesitar.
  2. Las vistas son archivos simples, con poca o ninguna lógica, que muestran la información al usuario; están compuesta de HTML para la parte estática y de PHP para la parte dinámica; aparte de CSS y JavaScript.
  3. Los controladores actúan como un código adhesivo, ordenando datos entre la vista (o el usuario que los está viendo) y el almacenamiento de datos, es decir, el modelo; este componente es donde generalmente pasamos más tiempo (junto con la vista) ya que, tenemos que organizar todo lo que vamos a ver en la vista, aplicar validaciones y demás reglas según la lógica de que programemos en nuestra aplicación.

En su forma más básica, los controladores y modelos son simplemente clases que tienen un trabajo específico que señalamos anteriormente; pero, siempre existen procesos que podemos reutilizar y esto, lo hacemos mediante la definición de otras clases como servicios, archivos de ayuda etc; que pueden formar parte del núcleo, es decir, parte del framework, o pueden ser definidas por ti, como parte de la aplicación que estás creando o por terceros, instaladas o copiadas en el framework.

Es importante señalar que, Laravel está un paso adelante del MVC ya que, ha evolucionado tanto que no es un MVC puro por decirlo de alguna manera; podemos definir la misma lógica del MVC de diversas formas; por ejemplo, para el controlador tenemos 3 formas de hacer lo mismo mediante rutas, controladores y componentes; en definitiva, para probar lo anterior, basta con revisar la carpeta de Http del framework:

MVC carpetas
MVC carpetas

Que como hablamos anteriormente, es la empleada para que un cliente pueda consumir la aplicación mediante HTTP; verás que, la carpeta controllers es apenas una parte parte de la carpeta Http; pero señalamos el MVC como una parte para entender el flujo básico.

En Laravel tenemos carpetas designadas para una labor en particular; como explicamos anteriormente; nosotros como desarrolladores, vamos a pasar la mayor parte del tiempo en la llamada /app y la carpeta de /resources

Laravel es un framework enorme, con múltiples herramientas que nos provee para crear verdaderas aplicaciones actuales, mantenibles y escalables; en un proyecto en Laravel, aparte de poder desarrollar en el propio framework, también podemos desarrollar en Node; por lo tanto, tenemos dos enormes mundos en un mismo proyecto.

Aún así, los caminos que podemos seguir para aprender a programar en Laravel y con esto, dar los primeros pasos.

Todo comienza con el MVC, que es el inicio de todo y es el corazón del framework; pero, al igual que ocurre con otros frameworks, como CodeIgniter o Django, existe una capa más en la cual podemos realizar algunas pruebas, que en este caso, sería la de las rutas.

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz en Udemy