馃搧 Estructura de archivos y carpetas en Laravel




馃搧 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.




Publicar un comentario

0 Comentarios