依賴注入的幾種形式及場景
阿新 • • 發佈:2019-02-04
1、依賴的自動注入
只需要在需要的位置注入你需要的依賴,執行容器時,會自動解析依賴(包括子依賴)
2、依賴的單例注入
比如 WEB 框架中 的 Request 依賴,需要跟蹤整個路由的響應週期,這就需要保持全域性的單例依賴
3、依賴的契約注入
比如我們依賴 Storage,前期可能使用 FileStorage ,後期發現效能瓶頸需要使用 RedisStorage , 這時候就可以使用 Storage 介面做為契約,將具體的實現類 FileStorage/RedisStorage 通過容器繫結機制關聯到 Storage 上(依賴注入 Storage),這樣如果需要修改儲存引擎,只需要修改繫結即可
4、標量引數關聯傳值
參照 Python 的傳值風格,PHP 預設是不支援這種方式的,如下
function hello($name = 'john', $value)
{
echo $name . ' say ' . $value;
}
// php 中呼叫
// hello('john', 'hello world');
// python 中呼叫 (請不要考究上述函式程式碼(PHP程式碼))
// hello(value = 'hello world')