Por un desarrollador, para desarrolladores.
Si vienes de PHP "puro" o de otros entornos donde el código parece un espagueti sin fin, entrar en Laravel es como pasar de un garaje desordenado a una clínica de alta precisión. Pero, para no perderse entre tantos archivos, es vital entender los cimientos: el patrón MVC y su estructura de carpetas.
1. El Patrón MVC: ¿Quién hace qué?
Laravel utiliza el patrón Modelo-Vista-Controlador (MVC) para separar las responsabilidades de la aplicación. Esto no es un capricho estético; es lo que permite que tu código sea escalable y fácil de mantener.
- Modelo (Model): Es la capa de los datos y la lógica de negocio. En Laravel, interactuamos con la base de datos mediante Eloquent ORM. Cada tabla suele tener un modelo correspondiente.
- Vista (View): Lo que el usuario ve. Laravel utiliza el motor de plantillas Blade, que permite escribir HTML con superpoderes de PHP de forma limpia.
- Controlador (Controller): El "tráfico" de la aplicación. Recibe la solicitud del usuario, le pide los datos al Modelo y decide qué Vista entregar.
2. Anatomía de un Proyecto Laravel
Al instalar Laravel por primera vez, verás una cantidad considerable de carpetas. No te asustes, aquí están las más importantes que debes conocer desde el día uno:
| Carpeta | Propósito |
|---|---|
app/ |
El núcleo de tu código: modelos, controladores y middleware. |
config/ |
Todos los archivos de configuración (base de datos, servicios, correo). |
database/ |
Migraciones (estructuras de tablas) y seeders (datos de prueba). |
public/ |
El punto de entrada (index.php) y archivos estáticos (CSS, JS, imágenes). |
resources/views/ |
Aquí viven tus archivos Blade (.blade.php). |
routes/ |
Donde defines las URLs de tu aplicación (web.php para el navegador). |
3. El Flujo de una Petición
Para entender la arquitectura, sigue este camino cuando un usuario entra a tu web:
- La petición llega al archivo
routes/web.php. - La ruta llama a un método en un Controlador (
app/Http/Controllers). - El Controlador habla con el Modelo (
app/Models) para obtener datos. - El Controlador envía esos datos a una Vista (
resources/views). - El usuario recibe el HTML renderizado en su navegador.
Tip Pro: Nunca pongas lógica compleja de base de datos dentro de tus controladores. Mantén tus controladores "delgados" y tus modelos "gordos" (o usa Services) para un código más profesional.