依赖注入的几种形式及场景
1、依赖的自动注入只需要在需要的位置注入你需要的依赖,运行容器时,会自动解析依赖(包括子依赖)2、依赖的单例注入比如 WEB 框架中 的 Request 依赖,需要跟踪整个路由的响应周期,这就需要保持全局的单例依赖3、依赖的契约注入比如我们依赖 Storage,前期可能使用 FileStorage ,后期发现性能瓶颈需要使用 RedisStorage , 这时候就可以使用 St
·
1、依赖的自动注入
只需要在需要的位置注入你需要的依赖,运行容器时,会自动解析依赖(包括子依赖)
2、依赖的单例注入
比如 WEB 框架中 的 Request 依赖,需要跟踪整个路由的响应周期,这就需要保持全局的单例依赖
3、依赖的契约注入
比如我们依赖 Storage,前期可能使用 FileStorage ,后期发现性能瓶颈需要使用 RedisStorage , 这时候就可以使用 Storage 接口做为契约,将具体的实现类 FileStorage/RedisStorage 通过容器绑定机制关联到 Storage 上(依赖注入 Storage),这样如果需要修改存储引擎,只需要修改绑定即可
4、标量参数关联传值
参照 Python 的传值风格,PHP 默认是不支持这种方式的,如下
function hello($name = 'john', $value)
{
echo $name . ' say ' . $value;
}
// php 中调用
// hello('john', 'hello world');
// python 中调用 (请不要考究上述函数代码(PHP代码))
// hello(value = 'hello world')
更多推荐
已为社区贡献4条内容
所有评论(0)