Ciclo de vida de aplicación en Laravel

Cuando usamos cualquier herramienta en el «mundo real», se siente más seguro si comprende cómo funciona esa herramienta. El desarrollo de aplicaciones no es diferente. Cuando comprenda cómo funcionan sus herramientas de desarrollo, se sentirá más cómodo y seguro al usarlas.

El objetivo de este articulo es brindarle una buena descripción general del alto nivel de cómo funciona el marco de Laravel.

Al conocer mejor el marco general, todo se siente menos «mágico» y tendrá más confianza en la construcción de sus aplicaciones. Si no comprende todos los términos de inmediato, no te preocupes Solo intente obtener una comprensión básica de lo que está sucediendo, y su conocimiento crecerá a medida que explore otras secciones de la documentación.

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 su servidor web (Apache / Nginx). El archivo index.php no contiene mucho código. Más bien, es un punto de partida para cargar el resto del marco.

El archivo index.php carga la definición de autocargador generada por Composer y luego recupera una instancia de la aplicación Laravel del script bootstrap / app.php. La primera acción realizada por Laravel es crear una instancia del contenedor de la aplicación / servicio.

A continuación, la solicitud entrante se envía al kernel HTTP o al kernel de la consola, según el tipo de solicitud que ingresa a la aplicación. Estos dos núcleos sirven como la ubicación central por donde fluyen todas las solicitudes. Por ahora, centrémonos en el kernel HTTP, que se encuentra en app / Http / Kernel.php.

El kernel HTTP extiende la clase Illuminate \ Foundation \ Http \ Kernel, que define una matriz de bootstrappers que se ejecutarán antes de que se ejecute la solicitud. Estos bootstrappers configuran el manejo de errores, configuran el registro, detectan el entorno de la aplicación y realizan otras tareas que deben realizarse antes de que la solicitud se maneje realmente.

El kernel HTTP también define una lista de middleware HTTP por el que deben pasar todas las solicitudes 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 una solicitud y devuelve una respuesta. Piense en el Kernel como una gran caja negra que representa toda su aplicación. Aliméntelo con solicitudes HTTP y devolverá respuestas HTTP.

Proveedores de servicio
Una de las acciones de arranque del kernel más importantes es cargar los proveedores de servicios para su aplicación. Todos los proveedores de servicios para la aplicación están configurados en la matriz de proveedores del archivo de configuración config / app.php. Primero, se llamará al método de registro en todos los proveedores, luego, una vez que se hayan registrado todos los proveedores, se llamará al método de arranque.

Los proveedores de servicios son responsables de arrancar todos los componentes del marco, como la base de datos, la cola, la validación y los componentes de enrutamiento. Dado que arrancan y configuran todas las funciones que ofrece el marco, los proveedores de servicios son el aspecto más importante de todo el proceso de arranque de Laravel.

Solicitud de envío
Una vez que se ha iniciado la aplicación y se han registrado todos los proveedores de servicios, la solicitud se entregará al enrutador para su envío. El enrutador enviará la solicitud a una ruta o controlador, así como ejecutará cualquier middleware específico de ruta.

Centrarse en los proveedores de servicios
Los proveedores de servicios son realmente la clave para iniciar una aplicación Laravel. Se crea la instancia de la aplicación, se registran los proveedores de servicios y se entrega la solicitud a la aplicación de arranque. ¡Es realmente así de simple!

Tener un conocimiento firme de cómo se construye y arranca una aplicación de Laravel a través de proveedores de servicios es muy valioso. Los proveedores de servicios predeterminados de su aplicación se almacenan en el directorio de proveedores / aplicaciones.

De forma predeterminada, AppServiceProvider está bastante vacío. Este proveedor es un gran lugar para agregar los enlaces de contenedores de servicio y arranque de su propia aplicación. Para aplicaciones grandes, es posible que desee crear varios proveedores de servicios, cada uno con un tipo de arranque más granular.