目录
目录
一.什么是 DI依赖注入/IOC控制反转. #
DI依赖注入
啥都不说,直接上代码
<?php
class UserController
{
private $user;
function __construct(UserModel $user) {
$this->user = $user;
}
}
$user = new UserController(new UserModel());
?>
User控制器依赖UserModel,实例化的时候,直接注入。
IOC控制反转 #
先说IOC和DI的区别吧!
IOC是一种设计思想
DI是一种设计模式
所以两者有本质上的区别。DI是IOC的一种实现方法(还有ServiceLocator等其他设计模式)。 所谓的反转,主要指由 主动依赖 到 被动依赖 。
//主动依赖
function __construct() {
$this->user = new UserModel();
}
//被动依赖
function __construct(UserModel $user) {
$this->user = $user;
}