📁 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.phpllama a un controlador enapp/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.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias