依賴注入容器的PHP庫

2018-01-26 17:43:157915206查看評論(15)
簡介:

<?php
namespace Auryn;
class CachingReflector implements Reflector
{
    const CACHE_KEY_CLASSES = 'auryn.refls.classes.';
    const CACHE_KEY_CTORS = 'auryn.refls.ctors.';
    const CACHE_KEY_CTOR_PARAMS = 'auryn.refls.ctor-params.';
    const CACHE_KEY_FUNCS = 'auryn.refls.funcs.';
    const CACHE_KEY_METHODS = 'auryn.refls.methods.';
    private $reflector;
    private $cache;
    public function __construct(Reflector $reflector = null, ReflectionCache $cache = null)
    {
        $this->reflector = $reflector ?: new StandardReflector;
        $this->cache = $cache ?: new ReflectionCacheArray;
    }
    public function getClass($class)
    {
        $cacheKey = self::CACHE_KEY_CLASSES . strtolower($class);
        if (!$reflectionClass = $this->cache->fetch($cacheKey)) {
            $reflectionClass = new \ReflectionClass($class);
            $this->cache->store($cacheKey, $reflectionClass);
        }
        return $reflectionClass;
    }

我們的思路是應用程序用到一個Foo類,就會創建Foo類并調用Foo類的方法,假如這個方法內需要一個Bar類,就會創建Bar類并調用Bar類的方法,而這個方法內需要一個Bim類,就會創建Bim類,接著做些其它工作。使用依賴注入的思路是應用程序用到Foo類,Foo類需要Bar類,Bar類需要Bim類,那么先創建Bim類,再創建Bar類并把Bim注入,再創建Foo類,并把Bar類注入,再調用Foo方法,Foo調用Bar方法,接著做些其它工作。這就是控制反轉模式。依賴關系的控制反轉到調用鏈的起點。這樣你可以完全控制依賴關系,通過調整不同的注入對象,來控制程序的行為。例如Foo類用到了memcache,可以在不修改Foo類代碼的情況下,改用redis。

使用依賴注入容器后的思路是應用程序需要到Foo類,就從容器內取得Foo類,容器創建Bim類,再創建Bar類并把Bim注入,再創建Foo類,并把Bar注入,應用程序調用Foo方法,Foo調用Bar方法,接著做些其它工作.總之容器負責實例化,注入依賴,處理依賴關系等工作。


依賴注入容器的PHP庫

申明:php中文網下載站匠心打造專業的IT資源下載站!一切資源免費,來源網絡收集,請自行檢測軟件的完整性。交流QQ群:940836927

上一頁:
下一頁:
o(╯□╰)o到頭了
相關推薦

PHP依賴注入容器庫

一個小的依賴注入容器
14014

依賴注入容器的PHP庫

依賴注入容器的PHP庫
7739202

靈活的依賴注入容器的PHP庫

一個靈活的依賴注入容器
11219

SF2依賴注入組件PHP類

SF2依賴注入組件PHP類
124438

依賴注入容器和服務定位器的通用接口類

依賴注入容器和服務定位器的通用接口類
10814

一個的依賴注入組件(SF2)類

一個的依賴注入組件(SF2)類
11215

防SQL注入的php類庫

防SQL注入的php類庫
2222223

簡單的php防注入類

簡單的php防注入類
912120
網頁評論
最新評論
趙強
永恒De國度
知言
  • 知言
  • 看介紹似乎很有用,收藏了
  • 2019-05-09 22:36:47發表+0回復
陽
  • 哈哈哈哈搜索
  • 2019-05-07 09:26:05發表+0回復
郭官鵬
  • 郭官鵬
  • 廣泛的泵房正本峰笨狗繃縫本
  • 2019-04-29 17:23:19發表+0回復
GNL(group normal lunatic)
心與境合
skymoon_語
孫聯慶
Diven~
  • Diven~
  • 這么多好東西,要是早知道,估計我也已經 牛 了
  • 2019-04-01 14:14:56發表+0回復
海南-五五來客
菜鳥一個
  • 菜鳥一個
  • 這么多好東西,要是早知道,估計我也已經 牛 了
  • 2019-03-15 15:44:04發表+0回復
__沒有背景丶只有背影
看,天邊那太陽
phpcn_u73322
澳洲幸运8在哪里开奖