Introducción

Al usar cualquier herramienta en el «mundo real», te sientes más cómodo si entiendes cómo funciona esa herramienta. El desarrollo de aplicaciones no es diferente. Cuando entiendes cómo funcionan tus herramientas de desarrollo, te sientes más cómodo y seguro usándolas.

El objetivo de este documento es darte un buen resumen sobre cómo funciona el framework Laravel. Al conocer mejor el framework, todo lo demás se siente menos «mágico» y te sentirás más cómodo construyendo tus aplicaciones. Si no entiendes todos los términos de una sola vez, ¡no te desesperes! Sólo trata de obtener una comprensión básica de lo que está sucediendo y tus conocimientos crecerán a medida que explores otras secciones de la documentación.

Resumen del ciclo de vida

Lo primero

El punto de entrada para todas las solicitudes a una aplicación de Laravel es el archivo public/index.php. Todas las solicitudes son dirigidas a este archivo por la configuración de tu servidor web (Apache / Nginx). El archivo index.php no contiene mucho código. En su lugar, es un punto de partida para cargar el resto del framework.

El archivo index.php carga la definición de autocarga generada por Composer, y luego retorna una instancia de la aplicación de Laravel desde el script bootstrap/app.php. La primera acción tomada por Laravel es crear una instancia de la aplicación / contenedor de servicios.

Kernel de HTTP / Consola

Luego, la solicitud entrante es enviada ya sea al kernel HTTP o al kernel de la consola, dependiendo del tipo de solicitud que esté entrando en la aplicación. Estos dos kernels funcionan como la ubicación principal a través de la cual pasan todas las solicitudes. Por ahora, vamos a enfocarnos sólo en el kernel HTTP, que está ubicado en app/Http/Kernel.php.

El kernel HTTP extiende de la clase Illuminate\Foundation\Http\Kernel, que define un arreglo de bootstrappers que se ejecutarán antes de que la solicitud sea ejecutada. Estos bootstrappers (programas de arranque básico) configuran el manejo de errores, logging, detectan el entorno de la aplicación y realizan otras tareas que necesitan ser ejecutadas antes de que la solicitud sea manejada.

El kernel HTTP también define una lista de middleware HTTP que todas las solicitudes deben pasar antes de ser manejadas por la aplicación. Estos middleware manejan la lectura y escritura de la sesión HTTP, determinando si la aplicación está en modo de mantenimiento, verificando el token CSRF y más.

La firma del método para el método handle del kernel HTTP es bastante simple: recibe un Request y retorna un Response. Piensa en el Kernel como una caja negra grande que representa toda tu aplicación. Aliméntala con solicitudes HTTP y retornará respuestas HTTP.

Proveedores de servicios

Una de las acciones de bootstraping (arranque básico) más importantes del Kernel es cargar los proveedores de servicios de tu aplicación. Todos los proveedores de servicios de la aplicación son configurados en el arreglo providers del archivo de configuración config/app.php. Primero, el método register será llamado en todos los proveedores, luego, una vez que todos los proveedores sean registrados, el método boot será llamado.

Los proveedores de servicios son responsables del bootstrapping de todos los distintos componentes del framework, como la base de datos, colas, validaciones y componentes de rutas. Dado que hacen el bootstrap (arranque básico) y configuran cada característica ofrecida por el framework, los proveedores de servicios son el aspecto más importante de todo el proceso de bootstrap de Laravel.

Despachar la solicitud

Una vez que la aplicación ha sido iniciada (bootstrapped) y todos los proveedores de servicios han sido registrados, la solicitud o Request será manejada por el enrutador para su despacho. El enrutador enviará la solicitud a una ruta o controlador, así como ejecutará cualquier middleware específico de ruta.

Enfoque en los proveedores de servicios

Los proveedores de servicios son realmente la clave para hacer el bootstrapping (inicio básico) de una aplicación de Laravel. La instancia de la aplicación es creada, los proveedores de servicios son registrados y la solicitud es entregada a la aplicación que ya ha sido iniciada (bootstrapped). ¡Es realmente así de simple!

Tener un firme conocimiento sobre cómo se construye e inicia básicamente (bootstrapped) una aplicación de Laravel mediante proveedores de servicios es muy útil. Los proveedores de servicios por defecto de tu aplicación están almacenados en el directorio app/Providers.

Por defecto, AppServiceProvider está casi vacío. Este proveedor es un buen lugar para agregar tu propio bootstrapping (inicio básico) de componentes y enlaces al contenedor de servicios de tu aplicación. Para aplicaciones grandes, puedes desear crear múltiples proveedores de servicios, cada uno que haga el bootstrapping de componentes de una manera más granular.

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Lección anterior Despliegue - Documentación de Laravel 6 Lección siguiente Contenedor de servicios - Documentación de Laravel 6