容器的设计原理

实现是双容器模式,分为进程级和请求级容器,进程级容器为Worker容器,用于存储框架核心的对象实例,开发者无需关心进程级容器的调用和维护。
请求级容器为应用容器,主要用于存储请求级的对象实例,例如我们在控制器中使用容器set了一个对象,那么get出来的,也只是这个请求对应的set对象,不会获取到别的请求实例,实现了真正的请求隔离。
同时,在Swoole中静态类不会自动释放内存空间,如果开发者自定义静态类就需要非常小心的维护其内存栈,这时候就应该将静态类的实例存储在容器中,在请求结束时,容器会自动销毁该请求持有的所有容器对象。
注意: SW-X的容器在v.2.0.4版本起,已经废弃进程级容器,只保留请求容器。