Estructura de Directorios
La estructura por defecto de la aplicación Laravel está pensada para proporcionar un gran punto de partida tanto para aplicaciones grandes como pequeñas. Pero eres libre de organizar tu aplicación como quieras. Laravel casi no impone restricciones sobre la ubicación de cualquier clase - siempre y cuando Composer pueda autocargar la clase.
├── app
│ ├── Broadcasting
│ ├── Console
│ ├── Events
│ ├── Exceptions
│ ├── Http
│ ├── Jobs
│ ├── Listeners
│ ├── Mail
│ ├── Models
│ ├── Notifications
│ ├── Policies
│ ├── Providers
│ ├── Rules
├── bootstrap
├── config
├── database
├── public
├── resources
├── routes
├── storage
├── tests
└── vendorDirectorio Raíz
Directorio de App
El directorio app contiene el código central de tu aplicación. Exploraremos este directorio en más detalle pronto; sin embargo, casi todas las clases de tu aplicación estarán en este directorio.
El directorio de Bootstrap
El directorio bootstrap contiene el archivo app.php que arranca el framework. Este directorio también contiene un directorio cache que contiene archivos generados por el framework para optimizar el rendimiento, como los archivos cache de rutas y servicios. Normalmente no debería ser necesario modificar ningún archivo de este directorio.
El directorio Config
El directorio config, como su nombre indica, contiene todos los archivos de configuración de tu aplicación. Es una gran idea leer todos estos archivos y familiarizarse con todas las opciones disponibles.
El directorio de bases de datos
El directorio database contiene tus migraciones de bases de datos, fábricas de modelos y seeders. Si lo deseas, también puedes utilizar este directorio para alojar una base de datos SQLite.
El Directorio Público
El directorio public contiene el archivo index.php, que es el punto de entrada para todas las peticiones que entran en tu aplicación y configura la carga automática. Este directorio también contiene tus activos, como imágenes, JavaScript y CSS.
El Directorio de recursos
El directorio resources contiene sus views así como sus activos sin compilar, como CSS o JavaScript.
El directorio de rutas
El directorio routes contiene todas las definiciones de ruta para tu aplicación. Por defecto, varios archivos de ruta se incluyen con Laravel: web.php, api.php, console.php, y channels.php.
El archivo web.php contiene rutas que el RouteServiceProvider coloca en el grupo de middleware web, el cual provee estado de sesión, protección CSRF, y encriptación de cookies. Si tu aplicación no ofrece una API RESTful sin estado, lo más probable es que todas tus rutas estén definidas en el archivo web.php.
El archivo api.php contiene rutas que el RouteServiceProvider coloca en el grupo de middleware api. Estas rutas están destinadas a ser sin estado, por lo que las solicitudes que entran en la aplicación a través de estas rutas están destinadas a ser autenticadas a través de tokens y no tendrán acceso al estado de la sesión.
El archivo console.php es donde puede definir todos sus comandos de consola basados en cierres. Cada cierre está vinculado a una instancia de comando permitiendo un enfoque simple para interactuar con los métodos IO de cada comando. Aunque este archivo no define rutas HTTP, define puntos de entrada basados en consola (rutas) en su aplicación.
El archivo channels.php es donde puede registrar todos los canales de difusión de eventos que su aplicación soporte.
El directorio de almacenamiento
El directorio storage contiene tus logs, plantillas Blade compiladas, sesiones basadas en ficheros, cachés de ficheros y otros ficheros generados por el framework. Este directorio está dividido en los directorios app, framework y logs. El directorio app puede ser utilizado para almacenar cualquier archivo generado por tu aplicación. El directorio framework se utiliza para almacenar archivos generados por el framework y cachés. Por último, el directorio logs contiene los archivos de registro de tu aplicación.
El directorio storage/app/public puede utilizarse para almacenar archivos generados por el usuario, como avatares de perfil, que deben ser accesibles públicamente. Debes crear un enlace simbólico en public/storage que apunte a este directorio. Puede crear el enlace utilizando el comando php artisan storage:link de Artisan.
El directorio de pruebas
El directorio tests contiene tus pruebas automatizadas. Ejemplo PHPUnit pruebas unitarias y pruebas de características se proporcionan fuera de la caja. Cada clase de prueba debe tener como sufijo la palabra Test. Puede ejecutar sus pruebas utilizando los comandos phpunit o php vendor/bin/phpunit. O, si desea una representación más detallada y hermosa de los resultados de sus pruebas, puede ejecutarlas utilizando el comando Artisan php artisan test.
El Directorio de Vendor
El directorio vendor contiene sus dependencias Composer.
El Directorio App
La mayor parte de la aplicación se encuentra en el directorio app. Por defecto, este directorio tiene el nombre App y es autocargado por Composer utilizando el PSR-4 autoloading standard.
El directorio app contiene una variedad de directorios adicionales como Console, Http, y Providers. Piensa en los directorios Console y Http como una API en el núcleo de tu aplicación. Tanto el protocolo HTTP como la CLI son mecanismos para interactuar con tu aplicación, pero en realidad no contienen lógica de aplicación. En otras palabras, son dos formas de emitir comandos a tu aplicación. El directorio Console contiene todos tus comandos Artisan, mientras que el directorio Http contiene tus controladores, middleware y peticiones.
Una variedad de otros directorios serán generados dentro del directorio app cuando utilices los comandos make de Artisan para generar clases. Así, por ejemplo, el directorio app/Jobs no existirá hasta que ejecutes el comando Artisan make:job para generar una clase job.
El Directorio Broadcasting
El directorio Broadcasting contiene todas las clases de canales de difusión para su aplicación. Estas clases se generan usando el comando make:channel. Este directorio no existe por defecto, pero se creará para ti cuando crees tu primer canal. Para saber más sobre canales, consulta la documentación sobre event broadcasting.
El Directorio Console
El directorio Console contiene todos los comandos personalizados de Artisan para su aplicación. Estos comandos pueden ser generados utilizando el comando make:command. Este directorio también contiene el kernel de tu consola, que es donde tus comandos personalizados de Artisan son registrados y tus tareas programadas son definidas.
El Directorio Events
Este directorio no existe por defecto, pero será creado para usted por los comandos Artisan event:generate y make:event. El directorio Events contiene clases de eventos. Los eventos pueden ser utilizados para alertar a otras partes de tu aplicación de que una determinada acción ha ocurrido, proporcionando una gran flexibilidad y desacoplamiento.
El Directorio Exceptions
El directorio Exceptions contiene el manejador de excepciones de tu aplicación y es también un buen lugar para colocar cualquier excepción lanzada por tu aplicación. Si desea personalizar la forma en que sus excepciones se registran o renderizan, debe modificar la clase Handler en este directorio.
El Directorio Http
El directorio Http contiene tus controladores, middleware y peticiones de formulario. Casi toda la lógica para manejar las solicitudes que entran en su aplicación se colocará en este directorio.
El Directorio Jobs
Este directorio no existe por defecto, pero será creado para usted si ejecuta el comando Artisan make:job. El directorio Jobs aloja los trabajos en cola para su aplicación. Los trabajos pueden ser puestos en cola por su aplicación o ejecutarse sincrónicamente dentro del ciclo de vida de la solicitud actual. Los trabajos que se ejecutan de forma sincrónica durante la petición actual se denominan a veces "comandos", ya que son una implementación del patrón de comandos.
El Directorio Listeners
Este directorio no existe por defecto, pero será creado por ti si ejecutas los comandos Artisan event:generate o make:listener. El directorio Listeners contiene las clases que manejan tus eventos. Los listeners de eventos reciben una instancia de evento y ejecutan la lógica en respuesta al evento disparado. Por ejemplo, un evento UserRegistered puede ser manejado por un listener SendWelcomeEmail.
El Directorio de Mail
Este directorio no existe por defecto, pero será creado para usted si ejecuta el comando make:mail de Artisan. El directorio Mail contiene todas sus clases que representan emails enviados por su aplicación. Los objetos Mail le permiten encapsular toda la lógica de construcción de un correo electrónico en una única y simple clase que puede ser enviada utilizando el método Mail::send.
El Directorio Models
El directorio Models contiene todas tus clases de modelos Eloquent. El ORM de Eloquent incluido con Laravel proporciona una hermosa y simple implementación de ActiveRecord para trabajar con tu base de datos. Cada tabla de la base de datos tiene su correspondiente "Modelo" que se utiliza para interactuar con esa tabla. Los modelos te permiten consultar los datos de tus tablas, así como insertar nuevos registros en la tabla.
El directorio Notifications
Este directorio no existe por defecto, pero será creado para usted si ejecuta el comando Artisan make:notification. El directorio Notifications contiene todas las notificaciones "transaccionales" que son enviadas por tu aplicación, como simples notificaciones sobre eventos que ocurren dentro de tu aplicación. La función de notificación de Laravel abstrae el envío de notificaciones a través de una variedad de controladores como correo electrónico, Slack, SMS, o almacenados en una base de datos.
El directorio Policies
Este directorio no existe por defecto, pero será creado por usted si ejecuta el comando Artisan make:policy. El directorio Policies contiene las clases de políticas de autorización para su aplicación. Las políticas son usadas para determinar si un usuario puede realizar una acción dada contra un recurso.
El Directorio Providers
El directorio Providers contiene todos los proveedores de servicios para tu aplicación. Los proveedores de servicios arrancan tu aplicación vinculando servicios en el contenedor de servicios, registrando eventos, o realizando cualquier otra tarea para preparar tu aplicación para las peticiones entrantes.
En una aplicación Laravel nueva, este directorio ya contendrá varios proveedores. Eres libre de añadir tus propios proveedores a este directorio según sea necesario.
El directorio Rules
Este directorio no existe por defecto, pero será creado por usted si ejecuta el comando Artisan make:rule. El directorio Rules contiene los objetos de reglas de validación personalizados para su aplicación. Las reglas se utilizan para encapsular lógica de validación complicada en un objeto simple. Para mayor información, revisa la documentación de validación.
Última actualización
¿Te fue útil?