微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

[PHP] 项目实践中使用的IOC容器思想

1.容器的意思就是一个全局变量,里面存了很多对象,如果要用到某个对象就从里面取,前提就是要先把对象放进去
2.控制反转就是把自己的控制权交给别人
3.这两个结合就是,把自己的控制权交给别人并且创建的对象放进一个全局变量
4.好处就是可以灵活的修改一个对象的属性,而不需要去修改类本身的代码

项目实践:
1.Application对象的resources属性数组就是那个容器
2.getResource方法就是控制生成对象的方法,生成一个对象的控制权交给了Application
3.这里先简化的规定下,自定义的类必须有createResource静态方法来创建自己这个对象

class Application{
    private $resources= array();
    public function getResource($class,$params) {
        if (!isset($this->resources[$class])) {
            $class] = call_user_func_array(array();
        }   
        return ];
    }   
}

 User {
    $name;
    $agefunction __construct($name,1)">){
        $this->name=;
        $this->age=;
    }   
    static function createResource(return new self();
    }   
    function says(){
        echo $this->name;
    }   
}
$app=new Application();
$user=$app->getResource("User",array("taoshihan","1000"));
$user->says();

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐