前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[PHP] 理解依赖注入容器

[PHP] 理解依赖注入容器

作者头像
唯一Chat
发布2021-06-23 00:40:58
3170
发布2021-06-23 00:40:58
举报
文章被收录于专栏:陶士涵的菜地陶士涵的菜地

容器就是个存东西的地方

依赖注入,就是通过构造函数,属性或者set方法传递对象的方式

如果依赖的类太多了,那么通过上面的方式传递对象就很繁琐

那么我们就可以直接传进去一个容器,需要的时候就在容器里面去拿就简单多了

这就是我们的容器类

代码语言:javascript
复制
//简单容器类
class Container {
    private $s=array();
    function __set($k, $c) { $this->s[$k]=$c; }
    function __get($k) { return $this->s[$k]($this); }
}

User类里面需要使用Book和Goods对象,在容器里创建后,在User类里面只需要直接拿就可以了

代码语言:javascript
复制
class User{
    private $c;
    public function __construct(Container $c)
    {
        $this->c=$c;
    }
    public function doBook(){
        $this->c->book->toDo();
    }
    public function doGoods(){
        $this->c->goods->toDo();
    }
}
class Book{
    public function toDo(){
        echo "do book\n";
    }
}
class Goods{
    public function toDo(){
        echo "do goods\n";
    }
}
$c=new Container();
$c->book=function(){
  return new Book();
};
$c->goods=function(){
    return new Goods();
};
$user=new User($c);
$user->doBook();
$user->doGoods();
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-06-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档