位置: 编程技术 - 正文

理解php依赖注入和控制反转(thinkphp5依赖注入)

编辑:rootadmin

推荐整理分享理解php依赖注入和控制反转(thinkphp5依赖注入),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:thinkphp6依赖注入,php依赖注入的原理,php依赖注入的三种方式,php 依赖,php依赖注入的三种方式,php依赖注入的三种方式,php依赖注入的三种方式,php依赖注入的原理,内容如对您有帮助,希望把文章链接给更多的朋友!

要想理解php依赖注入和控制反转两个概念,就必须搞清楚如下的问题:

DI——Dependency Injection 依赖注入

IoC——Inversion of Control 控制反转

1、参与者都有谁?  

答:一般有三方参与者,一个是某个对象;一个是IoC/DI的容器;另一个是某个对象的外部资源。又要名词解释一下,某个对象指的就是任意的、普通的Java对象; IoC/DI的容器简单点说就是指用来实现IoC/DI功能的一个框架程序;对象的外部资源指的就是对象需要的,但是是从对象外部获取的,都统称资源,比如:对象需要的其它对象、或者是对象需要的文件资源等等。

2、依赖:谁依赖于谁?为什么会有依赖?

答:某个对象依赖于IoC/DI的容器。依赖是不可避免的,在一个项目中,各个类之间有各种各样的关系,不可能全部完全独立,这就形成了依赖。传统的开发是使用其他类时直接调用,这会形成强耦合,这是要避免的。依赖注入借用容器转移了被依赖对象实现解耦。

3、注入:谁注入于谁?到底注入什么?

答:通过容器向对象注入其所需要的外部资源

理解php依赖注入和控制反转(thinkphp5依赖注入)

4、控制反转:谁控制谁?控制什么?为什么叫反转?

答:IoC/DI的容器控制对象,主要是控制对象实例的创建。反转是相对于正向而言的,那么什么算是正向的呢?考虑一下常规情况下的应用程序,如果要在A里面使用C,你会怎么做呢?当然是直接去创建C的对象,也就是说,是在A类中主动去获取所需要的外部资源C,这种情况被称为正向的。那么什么是反向呢?就是A类不再主动去获取C,而是被动等待,等待IoC/DI的容器获取一个C的实例,然后反向的注入到A类中。

5、依赖注入和控制反转是同一概念吗?

答:从上面可以看出:依赖注入是从应用程序的角度在描述,可以把依赖注入描述完整点:应用程序依赖容器创建并注入它所需要的外部资源;而控制反转是从容器的角度在描述,描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源。

下面我们通过例子来具体看看依赖注入的一些实现方式:

1.构造器注入

2、setter注入

上面俩种方法代码很清晰,但是当我们需要注入很多个依赖时,意味着又要增加很多行,会比较难以管理。

比较好的解决办法是 建立一个class作为所有依赖关系的container,在这个class中可以存放、创建、获取、查找需要的依赖关系

此时,如果获取一个book实例,只需要执行$newone = Ioc::makebook();

以上是container的一个具体实例,最好还是不要把具体的某个依赖注入写成方法,采用registry注册,get获取比较好

现在就可以通过如下方式来注册和注入一个

标签: thinkphp5依赖注入

本文链接地址:https://www.jiuchutong.com/biancheng/294857.html 转载请保留说明!

上一篇:php结合web uploader插件实现分片上传文件(Php结合wordpress开发,需要学会什么)

下一篇:php通过smtp邮件验证登陆的方法(php smtp类)

  • 红利税是什么时候扣的
  • 计提坏账后又收回怎么做
  • 外币借款本金的汇兑差额
  • 应收账款和应付账款可以抵消吗
  • 通过法院拍卖取得的设备怎么开具发票
  • 二级分支机构不具有主体生产经营职能
  • 印花税计税基数不包括哪些
  • 事业单位补发
  • 什么是资本性支出和支出
  • 出口退税不退税主要适用于
  • 防雨棚设计规范
  • 中介行业风险
  • 水利建设工程
  • 库存现金盘点表是不是原始凭证
  • 增值税发票验证码
  • 收到发票多开税额进项转出是怎样的?
  • 实物返利缴纳所得税吗?
  • 申报退税金额是0是怎么回事
  • 印花税已经缴纳了还需要申报
  • 分公司亏损还会分摊所得税吗
  • 公司变卖废纸也需要缴税
  • 税务局工会经费新举措
  • 技术服务费怎么开票
  • 土地使用权的租赁与出租的区别
  • 三证合一之后的税务登记
  • 生产性生物资产是什么意思
  • 框架采购合同如何计贴印花税?
  • 进项是普票销项是专票,怎么交税
  • 1697510710
  • 政府补助不征税条件
  • 期末增值税如何结转
  • 怎样结转销售成本会计分录
  • appdata文件夹在用户文件夹哪里
  • 编译安装php7
  • 查补以前年度企业所得税的申报处理
  • 企业实际缴纳税款额账务怎么看
  • WIN7系统如何共享打印机
  • 公益性捐赠申报填列
  • 政府会计制度中固定资产报废的账务处理
  • 什么情况借钱
  • h5页面内嵌到微信
  • 出差补助需要发工资吗
  • 最新版本TVBox配置地址
  • 结转损益的凭证需要打印吗
  • 股权对价支付
  • 公司缴纳社保应该怎么做账
  • css选择上一个兄弟
  • 打印的机票行程怎么查
  • 一般纳税人和小规模公司怎么区分
  • python代码用什么运行
  • 政府补贴需要还吗
  • 企业无力支付票据
  • 卖废品收入计入需要交税吗
  • 收到工程款时会计分录
  • 申报个人所得税的软件叫什么
  • 我国流转税税制结构的现状及改进意见
  • 生产加工企业辅导资料
  • 线上线下财务
  • 举办活动的工作要求
  • 车间管理人员的福利费计入什么科目
  • 日记账对方科目代表什么意思
  • 投资的公司注销了怎么做账
  • 未分配利润可以转盈余公积吗
  • Win10/Win8.1 PC版WhatsApp更新:新的emoji表情符号
  • cmos开机密码的清除的二种方法
  • linux安装视频教程
  • win1020h2版本要更新吗
  • 如何用mac制作ppt
  • grub4dos linux
  • windows8怎么设置
  • win8开始页面
  • python教程详细
  • Android - Designtime Layout Attributes & Tools Attributes
  • jquery简写符号
  • angular keyup
  • python读取linux文件
  • 企业员工可以放弃购买社保吗
  • 开发商代收代缴电费能开发票吗
  • 青岛税务社保缴费下载平台
  • 广东省电子税务局电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设