PHP依赖注入-最容易理解的术语
普通话:
依赖注入就是:先在外部实例化好需要的对象,然后通过构造函数传入目标类中,并赋值给类的属性,从而在类内部使用这个外部对象.
完整性:
依赖注入是一种将类所依赖的对象,从外部传入(通常通过构造函数),而不是在类内部自己创建,以实现低耦合,高扩展性的设计模式.依赖的对象可以由外部手动实例花,也可以由容器自动构建和注入.
简单容器代码
<?php class Container{ protected $bindings = []; public function bind($abstract,$concrete){ var_dump(111); $this->bindings[$abstract] = $concrete; } public function make($class){ if(isset($this->bindings[$class])){ $class = $this->bindings[$class]; } $reflector = new ReflectionClass($class); if(!$reflector->getConstructor()){ return new $class; } $params = $reflector->getConstructor()->getParameters(); $dependencies = []; foreach($params as $param){ $type = $param->getType(); if(!$type){ throw new Exception("无法解析参数{$param->name}"); } $dependencies[] = $this->make($type->getName()); } return $reflector->newInstanceArgs($dependencies); } }
                    
                
                
            
        
浙公网安备 33010602011771号