依賴注入(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
時,框架會自動為其創建一個實例并注入。這種方式使得代碼更加解耦,易于維護和測試。