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.