依赖注入容器的PHP库

2018-01-26 17:43:157893206查看评论(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