原理

~~~

1.任何的URL访问,最终都是定位到控制器,由控制器中的某个具体的方法去执行

2.一个控制器对应着一个类,如果这些类需要进行统一的管理,怎么办?

* 容器:容器来进行管理(但是容器并不管理控制器类,因为控制器类是用户直接访问的),

还可以将类的实例作为参数,传递给类方法,自动触发依赖注入

*

* 依赖注入:将对象类型的数据,以参数的方式传到方法的参数列表中

*

* URL访问:通过GET方式将数据传到控制器指定的方法中,但是只能传字符串,数值

*

* 如果要传一个对象到当前方法中?怎么办?

* 依赖注入:解决了向类中的方法传对象的问题

~~~

简单代码示例:

~~~

class Demo

{

//可以通过字符串,数值用GET方式来传值到类方法中

public function getName($name = 'Peter')

{

return 'Hello'.$name;

}

public function getMethod(Temp $temp)

{

$temp->setName('PHP是全世界最好的编程语言');

return $temp->getName();

}

//绑定一个类到容器

public function bindClass()

{

//把一个类放到容器中:相当于注册到容器中

\think\Container::set('temp','\app\common\Temp');

//将容器中的类实例化并取出来用:实例化的同时调用构造器进行初始化

$temp = \think\Container::get('temp',['name'=>'Peter_zhu']);

return $temp->getName();

}

//绑定一个闭包到容器:

public function bindColsure()

{

//把一个闭包放到容器中:相当于注册到容器中

\think\Container::set('demo',function($domain){

return 'PHP是全世界最好的编程语言:'.$domain;

});

//将容器中的闭包取出来用

return \think\Container::get('demo',['domain'=>'www.daijiandong.com']);

}

}

~~~

php容器原理,容器与依赖注入的原理相关推荐

  1. ASP.NET Core Web 应用程序系列(一)- 使用ASP.NET Core内置的IoC容器DI进行批量依赖注入(MVC当中应用)...

    在正式进入主题之前我们来看下几个概念: 一.依赖倒置 依赖倒置是编程五大原则之一,即: 1.上层模块不应该依赖于下层模块,它们共同依赖于一个抽象. 2.抽象不能依赖于具体,具体依赖于抽象. 其中上层就 ...

  2. php ioc容器,PHP 在Swoole中使用双IoC容器实现无污染的依赖注入

    容器(container)技术(可以理解为全局的工厂方法), 已经是现代项目的标配. 基于容器, 可以进一步实现控制反转, 依赖注入. Laravel 的巨大成功就是构建在它非常强大的IoC容器 il ...

  3. (转)编码剖析Spring依赖注入的原理

    http://blog.csdn.net/yerenyuan_pku/article/details/52834561 Spring的依赖注入 前面我们就已经讲过所谓依赖注入就是指:在运行期,由外部容 ...

  4. 什么是DI(依赖注入),依赖注入的原理

    这篇文章主要介绍了Spring当中的依赖注入(DI),以及他能注入的数据类型,和他的简单原理,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 什么是依赖注入? D ...

  5. 浅谈“面向接口编程” :依赖反转 IOC 与 DI (容器控制反转与依赖注入)

    IOC:Inversion of Control Containers and the Dependency Injection "Water" by Andy Huan, Mal ...

  6. DI 依赖注入实现原理

    深度理解依赖注入(Dependence Injection) 前面的话:提到依赖注入,大家都会想到老马那篇经典的文章.其实,本文就是相当于对那篇文章的解读.所以,如果您对原文已经有了非常深刻的理解,完 ...

  7. 依赖注入原理 php,PHP依赖注入原理与用法分析

    本文实例讲述了PHP依赖注入原理与用法.分享给大家供大家参考,具体如下: 引言 依然是来自到喜啦的一道面试题,你知道什么是依赖注入吗? 依赖注入(DI)的概念虽然听起来很深奥,但是如果你用过一些新兴的 ...

  8. spring依赖注入底层原理与源码分析

    Spring中有几种依赖注入方式? 1.手动注入-set方法注入和构造器注入 2.自动注入-@Autowired注解和xml注入 autowrire参数: no 默认不开启 byName 根据被注入属 ...

  9. guice依赖注入原理_Google Guice依赖注入示例教程

    guice依赖注入原理 Google Guice is the framework to automate the dependency injection in applications. If y ...

最新文章

  1. Java程序员,上班那点事儿--程序员也是一般人
  2. Java8新特性Stream
  3. 性能测试二十八:环境部署之Dubbo部署
  4. Java中Comparator比较器的使用以及使用lamba简化代码
  5. Redis主从复制、哨兵模式和分布式集群
  6. Exception in thread “main“ java.sql.SQLException: The server time zone value
  7. RHEL5中实现各种服务的准备条件:
  8. arm开发板上找不到/dev/i2c-*设备
  9. Ubuntu 18.04修改默认源为国内源
  10. 3d打印路径规划 matlab,基于FDM技术的3D打印路径规划技术研究
  11. 虚幻引擎UE4编辑器介绍
  12. ppt如何替换其他mo ban_超实用办公软件小技巧之PPT~
  13. Retrofit2 详解和使用(一)
  14. 美食杰(个人主页) 上
  15. 电脑打字习惯让人提笔忘字
  16. java计算机毕业设计个人交友网站源程序+mysql+系统+lw文档+远程调试
  17. python数据分析(一):列联分析与方差分析
  18. ASP.NETCoreWeb教程一:创建和理解Web应用程序,细致入微
  19. 小岳岳逗乐,林志玲亲临,看科技如何助力十一出游
  20. 迁移学习(Transfer Learning)-- 概念理解

热门文章

  1. 没用过这几招,别说你会使用Jupyter Notebook
  2. 低代码/无代码,在国内还有多长的路要走?
  3. 小心这 10 个云计算错误!
  4. “编程能力差,90%会输在这点上!”谷歌开发:方法不对,努力也白费
  5. iPhone11 全线降价;哈啰出行否认大量裁员;LineageOS 17.1 发布| 极客头条
  6. 美国AI公司30亿人脸数据被黑,遭科技巨头联合“封杀”
  7. 微信潜规则:月薪过万的90后,过年都在看什么?
  8. 罗永浩向老同事道歉;三星漏洞已波及四千万用户;Clojure 1.11 即将发布 | 极客头条...
  9. 阿里在美申请区块链专利;Win10 最新漏洞被发现;MongoDB 4.2 发布​ | 极客头条...
  10. Python 爬取 B 站 5000 条视频,揭秘为何千万人为它流泪!