依赖注入容器的PHP库.zip

时间:2022-07-31 04:22:54
【文件属性】:

文件名称:依赖注入容器的PHP库.zip

文件大小:27KB

文件格式:ZIP

更新时间:2022-07-31 04:22:54

类库下载-依赖注入容器的PHP库

<?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库
----auryn-master()
--------.gitattributes(66B)
--------lib()
--------.php_cs(284B)
--------CONTRIBUTING.md(1KB)
--------.travis.yml(283B)
--------LICENSE(1KB)
--------phpunit.xml(1KB)
--------README.md(29KB)
--------.phpstorm.meta.php(144B)
--------.gitignore(28B)
--------composer.json(1KB)
----php中文网下载站.url(114B)
----php中文网免费下载站.txt(219B)

网友评论