Request Bean

scoperequest 类型的 bean, 框架初始化的时候并不会初始化

而是在 onRequest 事件触发后 采用懒加载方式,

在框架初始化的时候不会初始化.

只有真正调用的时候才会被初始化,在当前请求中保持单例,请求结束后会被自动销毁。作用域始终在于一个请求当中

使用

只能通过获取 BeanFactory::getRequestBean 获取

$obj = BeanFactory::getRequestBean($name, (string) $tid);
  • name requestBean 的名称/别名/类名
  • tid 通常是与是顶级协程ID绑定。获取顶级协程IDCo::tid()获取当前协程环境 顶级协程ID

如果你需要获取当前请求加载了那些 request bean 。可以使用:

$pool = BeanFactory::getContainer()->getRequestPool()

销毁

所有协程执行完毕后,在SwoftEvent::COROUTINE_COMPLETE事件中, 会自动销毁顶级协程ID绑定的request bean

这时 request bean的生命周期也就结束了。

/docs/2.x/zh-CN/bean/request.html
progress-bar