Estructura de un Proyecto Laravel
La estructura de un proyecto en Laravel esta estructurada para que se puedan distinguir y ubicar lo mas fácil posible cada uno de los componentes de una aplicación web, proporcionado un gran punto de partida tanto para aplicaciones grandes como pequeñas. Por otro lado, Laravel no restringe como organizas tu aplicación, de echo no impone casi ninguna regla sobre donde se ubica una clase determinada, claro siempre que Composer pueda cargar automáticamente la clase. El ejemplo mas claro es acerca de porque no existe el directorio modelos, la documentación de laravel nos comenta que el termino "modelo" es encontrado tan ambiguo debido a que puede significar diferentes cosas para personas distintas, clarificando nos que algunos desarrolladores se refieren al "modelo" de una aplicación como la totalidad de su lógica de negocio, mientras que para otros se refieren a "modelos" como clases que interactúan con una base de datos relacional.
Por esta razón, elegimos colocar modelos Eloquent en el directorio de aplicaciones de forma predeterminada y permitir que el desarrollador los coloque en otro lugar si así lo desean.
El Directorio Raíz
Definiciones extraidas de la Documentación orginial de laravel
El Directorio App
El directorio de app, como es de esperar, contiene el código principal de la aplicación. Vamos a explorar este directorio en más detalle pronto; Sin embargo, casi todas las clases de su aplicación estarán en este directorio. El directorio app tiene a su vez otros subdirectorios importantes pero uno de los más utilizados es el directorio Http en el cuál ubicaremos nuestros Controllers, Middlewares y Requests en sus carpetas correspondientes.
El Directorio Bootstrap
El directorio bootstrap contiene archivos que inicializan el framework y configuran el autoloading. Este directorio también contiene un directorio de caché que contiene archivos generados por el framework para la optimización del rendimiento, como la ruta y los archivos de caché de servicios.
El Directorio Config
El directorio config, como su nombre indica, contiene todos los archivos de configuración de su aplicación. Es una gran idea leer todos estos archivos y familiarizarse con todas las opciones disponibles para usted.
El Directorio Database
El directorio de la base de datos contiene la migración de la base de datos y las semillas. Si lo desea, también puede utilizar este directorio para mantener una base de datos SQLite.
El Directorio Public
El directorio público contiene el archivo index.php, que es el punto de entrada para todas las solicitudes que ingresan a su aplicación. Este directorio también contiene sus activos, como imágenes, JavaScript y CSS.
El Directorio Resources
El directorio de recursos contiene sus vistas, así como sus recursos crudos, no compilados como LESS, SASS o JavaScript. Este directorio también contiene todos sus archivos de idioma.
El Directorio Routes
El directorio de rutas contiene todas las definiciones de ruta para su aplicación. De forma predeterminada, se incluyen tres archivos de ruta con Laravel: web.php, api.php y console.php.
El Directorio Storage
El directorio de almacenamiento contiene sus plantillas de Blade compiladas, sesiones basadas en archivos, cachés de archivos y otros archivos generados por el framework o la misma aplicación.
El Directorio Tests
El directorio de pruebas contiene sus pruebas automatizadas. Un ejemplo PHPUnit se proporciona fuera de la caja. Cada clase de prueba debe tener el sufijo con la palabra Test. Puede ejecutar las pruebas con los comandos phpunit o php vendor / bin / phpunit.
El Directorio Vendor
El directorio de Vendor contiene sus dependencias de Composer.