Está en la página 1de 1

UNIVERSIDAD MARIANO GALVEZ DE GUATEMALA

Facultad de Ingeniería
Analisis de Sistemas 2
Ingeniero Echeverria
4 Año Ing. En Sistemas
Willy Amílcar de León Castro
2790-17-7698
¿PORQUÉ LARAVEL NO ES FRAMEWORK MVC?
Hoy en día, para desarrollar una aplicación web de forma exitosa, necesitamos mucho más que 3
capas. Por ejemplo en MVC:

No tenemos una manera de representar las rutas que se encargan de analizar las URLs y asignarlas a
un método o función,
No tenemos forma de representar un middleware que restringe ciertas áreas de la aplicación basado
en el estado del usuario
Una aplicación moderna requiere mucho más que la representación de datos a través de un modelo
Me imagino que por ello en Wikipedia, así como en muchas otras partes de la web, han cambiado
tantas veces el concepto de MVC, supongo que intentando (y fallando, espectacularmente) que éste
refleje las necesidades de una aplicación moderna.

Por ejemplo en Wikipedia nos dicen que un modelo: «maneja directamente la data, lógica y reglas
de la aplicación», la vista: «es la salida o representación gráfica de información (es decir, ¿Podría
ser JSON o un diagrama?), un controlador: «acepta una entrada y la convierte en comandos para el
modelo y la vista».

Estos conceptos son demasiado genéricos, y distan muchísimo de darte las herramientas que
necesitas para construir aplicaciones avanzadas.

Por ejemplo, la mayoría cree que el «Modelo» es la «base de datos» pero el 90% de las aplicaciones
requieren mucho más lógica que almacenar datos ¿Cierto?

De hecho, si bien Laravel 4 incluía las 3 famosas carpetas controllers, models, views, en Laravel 5:

Ya no encontrarás una carpeta «models», en vez de eso tienes una carpeta app/ donde puedes
estructurar tu aplicación de la forma que tenga más sentido para tu proyecto.
La carpeta Controllers es una pequeña parte de la capa «Http» que se encuentra dentro de app/.
Junto a Controllers, tienes Middleware/ (middleware no se pluraliza), tienes el directorio Requests/
donde se albergan los FormRequests y tienes el archivo «routes.php»
La carpeta «views/» se encuentra ahora dentro de resources/ y forma parte de los «recursos» para
presentarle los datos al usuario (assets/ lang/), creo que esta capa es la que menos cambió, por así
decirlo.
En la carpeta app/ también encontrarás otras capas como Eventos, Listeners, Excepciones, Jobs, etc.

Verás, aunque tu aplicación utilice Modelos, Vistas, y Controladores, no es MVC puesto que se
requieren muchas más capas para poder organizar todos los aspectos característicos de tu
aplicación, si no quieres terminar escribiendo código espagueti, claro está.

Esto es lo que sucedía con frameworks como CodeIgniter. ¿Has escrito una aplicación en
CodeIgniter? ¿Anda a verla un momento, abre sus controladores y sus modelos, al menos que sea
una app super sencilla, superan las 100 líneas de código cada uno cierto? ¿Tu modelo Usuario tiene
1000 líneas de código? Te lo dije.

También podría gustarte