业务逻辑:
正常在 controller 方法的参数中注入某个类,方法中使用这个类时发生内存超出提示。
分析:
过往显示,正常使用依赖注入是不存在问题的,那么很有可能是哪里发生了循环引用,导致一直请求某个操作而消耗内存。
排查:
业务逻辑没有任何问题。
在定义路由时,该路由指定了某个中间件,需要排查中间件的 handle 实现。
handle 中只做了一件事,检测当某个条件不满足时会调用 return app(Controller::class)->returnValue();
我们知道 app() 中的 make 方法是解析依赖注入的源头。
那么,你知道在中间件中为什么会引发内存溢出吗 ?
解决方案:
中间件抛异常,再对异常统一处理。