依赖注入(Dependency Injection,简称DI)是一种实现控制反转(Inversion of Control,简称IoC)的设计模式,用于降低代码之间的耦合度。在PHP框架中,依赖注入主要通过以下几种方式实现:
class MyClass {
    protected $dependency;
    public function __construct(MyDependency $dependency) {
        $this->dependency = $dependency;
    }
}
class MyClass {
    protected $dependency;
    public function setDependency(MyDependency $dependency) {
        $this->dependency = $dependency;
    }
}
class MyClass {
    public function myMethod(MyDependency $dependency) {
        // 使用依赖对象的方法或属性
    }
}
在PHP框架中,依赖注入通常由框架的核心组件或服务容器(Service Container)来管理。服务容器负责创建对象、解析依赖关系以及注入依赖。以下是一个简单的例子,展示了如何在PHP框架中使用依赖注入:
// 创建服务容器实例
$container = new Container();
// 注册依赖关系
$container->bind(MyDependency::class, function ($container) {
    return new MyDependency();
});
// 解析依赖关系并注入
$myClass = $container->get(MyClass::class);
这样,当MyClass需要使用MyDependency时,框架会自动为其创建一个实例并注入。这种方式使得代码更加解耦,易于维护和测试。