1 什么是契约?
什么是契约?为什么要用契约?契约能带来什么好处?
契约其实就是DI依赖注入的注入类的声明关系,它在register方法中声明了什么样的类型提示要注入时对应什么样的类?关于依赖注入不明白的可以参考《【php】hyperf笔记-依赖注入》的说明。
为什么要用契约?契约能带来什么好处?
上面说了,依赖注入是根据类型提示符来注入对应的类,如果在程序中各个地方使用这种(实际上laravel只能在控制器能使用依赖注入)基于提示符来注入依赖,哪天要修改替换为哪一个类时也只需要修改类型提示符关联的类就行了,从使所以的通过依赖注入的实例都生效。还有由于依赖注的实例统一在一个地方生成的,可以进行干预处理,从而影响到全局的程序,也就是面向切面(AOP);
而用契约能使代码看起更明确,更统一。
2 示例代码
2.1 订单服务类
1 |
|
2.2 声明依赖
1 |
|
2.3 控制器使用
1 |
|