馃搧 Estructura general del proyecto Laravel

Cuando creas un nuevo proyecto de Laravel, el sistema genera una estructura de carpetas muy organizada. Esta organizaci贸n sigue el patr贸n MVC (Modelo-Vista-Controlador), lo que facilita mantener el c贸digo limpio y escalable.

Vista general del directorio

Al abrir tu carpeta del proyecto (ejemplo-laravel), ver谩s algo como esto:

Estructura de directorios

ejemplo-laravel/
├── app/
├── bootstrap/
├── config/
├── database/
├── public/
├── resources/
├── routes/
├── storage/
├── tests/
├── vendor/
└── .env
                        

Veamos el papel de cada carpeta y archivo principal 馃憞

馃搨 Explicaci贸n de las carpetas principales

app/

Es el coraz贸n de tu aplicaci贸n. Aqu铆 est谩 la l贸gica del negocio: modelos, controladores, middleware, pol铆ticas, etc. Laravel organiza este directorio en subcarpetas, como Http/ (controladores y middleware) o Models/ (modelos Eloquent).

bootstrap/

Contiene el archivo app.php, que se ejecuta al iniciar Laravel. Se encarga de preparar el framework para funcionar. Tambi茅n incluye la carpeta cache/, donde Laravel guarda la informaci贸n que necesita para arrancar r谩pidamente.

config/

Aqu铆 est谩n todos los archivos de configuraci贸n del framework: base de datos, correos, sesiones, servicios, etc. Laravel toma la informaci贸n del archivo .env para completar estos valores din谩micamente.

database/

Esta carpeta no guarda la conexi贸n en s铆, sino los scripts para crear y llenar las tablas de tu base de datos:

  • migrations/: crean o modifican tablas (estructura de la base de datos).
  • seeders/: insertan datos iniciales (como usuarios o roles por defecto).
  • factories/: generan datos falsos autom谩ticamente para pruebas.

La conexi贸n real se define en el archivo .env, no aqu铆.

public/

Es la carpeta que se expone al navegador. Contiene el archivo index.php (punto de entrada de la aplicaci贸n) y los recursos p煤blicos: im谩genes, CSS, y JS compilados.

resources/

Aqu铆 se guardan las vistas Blade, los archivos de idioma y los recursos front-end (SASS, JavaScript, etc.). Todo lo que ve el usuario en pantalla se genera desde esta carpeta.

routes/

Define las rutas de la aplicaci贸n: qu茅 URL ejecuta qu茅 controlador. - web.php: rutas para la parte web (vistas Blade). - api.php: rutas para servicios API. - console.php: comandos Artisan personalizados.

storage/

Guarda los archivos generados por la aplicaci贸n: logs, cach茅, subidas de usuario, sesiones, etc. Esta carpeta suele necesitar permisos de escritura.

tests/

Contiene las pruebas autom谩ticas (tests unitarios y funcionales). Laravel usa PHPUnit o Pest para ejecutar estos tests.

vendor/

Aqu铆 se almacenan todas las dependencias instaladas mediante Composer, incluyendo el propio n煤cleo de Laravel. 馃敻 No se debe modificar manualmente esta carpeta.

馃摐 Archivos importantes en la ra铆z

  • .env: Configura el entorno (base de datos, correo, APP_KEY, etc.).
  • artisan: Interfaz de l铆nea de comandos de Laravel (permite crear controladores, ejecutar migraciones, etc.).
  • composer.json: Lista las dependencias PHP del proyecto.
  • package.json: Contiene dependencias JavaScript y configuraciones del frontend.
  • webpack.mix.js o vite.config.js: Archivos de compilaci贸n de recursos front-end.

馃敆 C贸mo se relacionan entre s铆

Laravel funciona de manera integrada. Aqu铆 un ejemplo pr谩ctico:

  • Una ruta definida en routes/web.php llama a un controlador en app/Http/Controllers/.
  • El controlador usa un modelo de app/Models/ para obtener datos de la base (configurada en .env).
  • Los datos se env铆an a una vista Blade ubicada en resources/views/.
  • Los archivos se almacenan o loguean en storage/ si es necesario.

馃挕 Consejo final

Conocer la estructura del proyecto te ayudar谩 a moverte con seguridad y comprender c贸mo Laravel organiza cada parte del flujo de una aplicaci贸n moderna.