php容器 控制反轉(IoC) 依賴注入(DI)

2022-09-24 04:27:09 字數 1179 閱讀 4542

1、容器

容器:字面上理解就是裝東西的東西。常見的變數、物件屬性等都可以算是容器。容器存放的是物件、物件的描述(類、介面)或者是提供物件的**(閉包),通過這種容器,我們得以實現許多高階的功能,其中最常提到的,就是 「解耦」、「依賴注入」。

2、ioc - inversion of control 控制反轉

控制反轉是從由容器反向的向應用程式注入應用程式所需要的外部資源。

3、di - dependency injection 依賴注入

依賴注入就是將乙個類通過構造方法注入到當前類中

例如在控制器下的方法中一旦指定引數為物件型別,那麼則會自動觸發依賴注入

由於訪問控制器的引數都來自於url請求,普通變數就是通過引數繫結自動獲取,物件變數則是通過依賴注入生成。

4、例項

<?php

// 模型

class model

}// 控制器

class controller

//通過依賴注入獲取屬性

public function index()

//通過依賴注入執行方法

public function user()

}echo '【依賴注入和控制反轉】

';//1、ioc - inversion of control 控制反轉

$model = new model();

//例項化物件

$contro = new controller($model);

//2、di - dependency injection 依賴注入

//通過依賴注入獲取屬性

var_dump($contro->index());

echo '

';//通過依賴注入執行方法

$contro->user();

/*建立容器類

*/class container

/*** @param $key //容器別名

* @return mixed //容器物件

*/public function get($key)

}echo '

【容器】

';# 建立容器類

//通過容器獲取model類中的屬性

echo '

';//通過容器呼叫controller中的user方法

IOC控制反轉(依賴注入)

一。什麼叫控制反轉 moattack 墨攻劇本需要乙個英雄,去喊話,墨者革離 這時候劇本就控制liudehua 劉德華 去喊話。這個演員不一定確定是劉德華,我們可能找其他人來喊話,但是這個人必須有乙個功能喊話。所以我們定義了乙個角色介面 geli 演員實現這個介面。我們需要實現劇本只是依賴角色。而不...

PHP控制反轉(IOC)

控制翻 ioc inversion of control 控制反轉模式 控制反轉是將對3類 元件間 的依賴關係從程式內部提到外部來管理 概念理解 我們先來介紹控制反轉,依賴注入,這兩個概念我們可以認為他們表達的同一種意思,舉個通俗的例子,我們使用者登入需要提供記錄日誌的功能,可以選擇使用檔案或者資料...

ioc 控制反轉之依賴注入

ioc是控制反轉的意思,所謂的依賴注入更像是注入依賴。當你想在a的內部呼叫b物件的某個功能時,我們說這個是a依賴於b了。那當你在a的內部例項化了b,那麼你就把這兩個類耦合了在一起。以後你修改一些東西自然就麻煩了許多,那麼我們可以怎麼做呢?我們可以使用ioc將乙個b的例項從外部設定給a,這樣就做到了低...