📁 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