Request Bean

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

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

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

使用

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

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

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

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

销毁

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

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