作家
登录

PHP如何实现依赖注入

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

  •                 if (!$reflector->isInstantiable()) { 
  •                         throw new \Exception("Can't instantiate ".$className); 
  •                 } 
  •                 // 检查类是否可实例化, 清除抽象类abstract和对象接口interface 
  •                 if (!$reflector->isInstantiable()) { 
  •                         throw new \Exception("Can't instantiate ".$className); 
  •                 } 
  •                 /** @var \ReflectionMethod $constructor 获取类的构造函数 */ 
  •                 $constructor = $reflector->getConstructor(); 
  •                 // 若无构造函数,直接实例化并返回 
  •                 if (is_null($constructor)) { 
  •                         return new $className; 
  •                 } 
  •                 // 取构造函数参数,经由过程 ReflectionParameter 数组返回参数列表 
  •                 $parameters = $constructor->getParameters(); 
  •                 // 递归解析构造函数的参数 
  •                 $dependencies = $this->getDependencies($parameters); 
  •                 // 创建一个类的新实例,给出的参数将传递到类的构造函数。 
  •                 $class =  $reflector->newInstanceArgs($dependencies); 
  •                 $this->instance[$className] = $class; 
  •                 return $class; 
  •         } 
  •  
  •         /** 
  •          * @param array $parameters 
  •          * @return array 
  •          */ 
  •         public function getDependencies(array $parameters) 
  •         { 

      推荐阅读

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

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


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

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

  • 关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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