作家
登录

PHP如何实现依赖注入

作者: 来源: 2017-08-16 17:03:23 阅读 我要评论

return isset($this->instance[$id]) ? true : false
  •         } 
  •  
  • 应用示例

    1. $container = new Container('../');//假设这是路径 
    2. $echoT = $container->get(\Test\EchoT::class);     //假设echoT类的定名空间是\Test 
    3. $echoT->echo();  
    1. // 检查类是否可实例化, 清除抽象类abstract和对象接口interface 
    2.                 if (!$reflector->isInstantiable()) { 
    3.                         throw new \Exception("Can't instantiate ".$className);  

    因为接口T是无法实例化的,所以,一般在法度榜样内,我们都加上别号(参照laravel框架)

    1. $container->alisa(\Test\T::class,\Test\T\A::class); //指假寓口T应用类A(控制反转) 

    针对接口

    下面是alias办法

    1. public function alias(string $key, $class, bool $singleton = true)  
    2.        { 
    3.                if($singleton) { 
    4.                        $this->singleton[] = $class; 
    5.                } 
    6.                $this->aliases[$key] = $class; 
    7.                return $this; 
    8.        } 
    9.    //同时,我们须要在build的时刻进行断定是否为别号 
    10. public function build($className) 
    11.        { 
    12.                if(is_string($className) and $this->has($className)) { 
    13.                        return $this->get($className); 
    14.                } 
    15.                if(isset($this->aliases[$className])) { 
    16.                        if(is_object($this->aliases[$className])) { 
    17.                               return $this->aliases[$className]; 
    18.                        } 
    19.                        $className = $this->aliases[$className]; 

        推荐阅读

        在命令行中将CentOS 7与Samba4 AD集成

      【51CTO晃荡】8.26 带你深度懂得清华大年夜学、搜狗基于算法的IT运维实践与摸索 本指南将向你介绍若何应用 Authconfig 在敕令行中将无图形界面的 CentOS 7 办事器集成到 Samba4 AD 域控制>>>详细阅读


      本文标题:PHP如何实现依赖注入

      地址:http://www.17bianji.com/lsqh/36755.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)