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);

    }

}

 

posted @ 2025-06-16 14:55  X__cicada  阅读(18)  评论(0)    收藏  举报