【php】hyperf笔记-依赖注入

什么是依赖注入?

 依赖注入就是AOP切面编程,把一个需求实例化的类通过反射机制在一个统一的地方进行实例化,期间通过类型提示的参数对应的依赖类赋值给这个类,然后返回这个实例。

classDiagram
class 容器
class 实例{
<>

- $userInfo : object App\User

}
class Dependence{
<>
// 类型提示对应要注入的类

‘App\UserInterface’ => ‘App\User’

}
class UserInfo{
<>
}
class User{
<>

- $userInfo: Object 
+ __construct(App\UserInterface::class $userInfo) : void

}
容器 –> 实例: 5返回实例
实例 –> 容器:1
容器 <-- 2 user : user类载入容器 dependence --|> 容器 : 3 查看UserInterface对应的注入类
容器 <|– UserInfo : 4 根据依赖关系注入




官方的Di解释是:即“依赖注入”:组件之间依赖关系由容器在运行期决定,由容器动态的将来依赖关系注入到对象之中。
 由于实例都是统一从容器中获取,使得只要修改类型提示关联的类就能全局生效,或者类的单例使用。

2 在hyperf的依赖注入实现

 在hyperf的容器中,通过扫描文件中类的类型提示的接口类对应的实现类,从而把依赖的实现类实例注入到实例中。所以标明一个对象所依赖的有哪个对象是通过传入的参数的类型提示来标明的。注入的方式分为构造方法注入和@inject注解注入。

坚持原创技术分享,您的支持将鼓励我继续创作!
0%