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')
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐