简介:
容器(container)技术(可以理解为全局的工厂方法), 已经是现代项目的标配. 基于容器, 可以进一步实现控制反转, 依赖注入....所谓”双容器策略”, 总结如下:
同时运行 “进程级容器” 与 “请求级容器”
“进程级容器” :
传统的IoC 容器, 例如 Illuminate/container
“请求级容器” :
所有工厂方法注册到容器的静态属性上...所谓容器, 相当于一个全局的工厂. 可以在这里 “注册” 各种服务的工厂方法, 再使用容器统一地获取....UserInterface::class,
// 生成实例的工厂方法....所以直接使用了 Laravel 的 Application 做 “进程级容器”, 确保自己请求中用到的核心业务逻辑都不注册到 laravel中, 避免污染.