Cambios en el objeto request en Lumen 5.4

Este artículo es una traducción de Request Object Changes in Lumen 5.4.

Hace un par de semanas, el equipo de Lumen solucionó un problema con el objeto request cuando se llamaba en tests unitarios. Antes de la solución el objeto request aparecía vacío y los datos de la petición no se encontraban.

El problema estaba relacionado con el arranque de Lumen, simplemente el request estaba siendo instanciado como Singleton demasiado pronto en la secuencia de arranque. No se podían crear requests en tests unitarios ya que ya estaba instanciado como un Singleton, y es por ello que no se podía reestructurar para tests unitarios.

Para resolver este problema se ha retrasado la creación de la instancia request hasta que la aplicación envía la petición al router, el mismo enfoque que sigue Laravel en su arranque.

El problema con este cambio es que los usuarios de Lumen ya no podrán utilizar la instancia de request en Service Providers. Esto es debido a que en el instante en el que Lumen registra los providers, el objeto no se habrá creado todavía.

La solución alternativa es copiar el código que utiliza el request y que se podría en el Service Provider y moverlo a un middleware global; el middleware se ejecutará justo después de capturar la petición.

Comparte este artículo

Entra en la discusión y deja tu comentario

Veces