php容器原理,容器与依赖注入的原理
原理
~~~
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容器原理,容器与依赖注入的原理相关推荐
- ASP.NET Core Web 应用程序系列(一)- 使用ASP.NET Core内置的IoC容器DI进行批量依赖注入(MVC当中应用)...
在正式进入主题之前我们来看下几个概念: 一.依赖倒置 依赖倒置是编程五大原则之一,即: 1.上层模块不应该依赖于下层模块,它们共同依赖于一个抽象. 2.抽象不能依赖于具体,具体依赖于抽象. 其中上层就 ...
- php ioc容器,PHP 在Swoole中使用双IoC容器实现无污染的依赖注入
容器(container)技术(可以理解为全局的工厂方法), 已经是现代项目的标配. 基于容器, 可以进一步实现控制反转, 依赖注入. Laravel 的巨大成功就是构建在它非常强大的IoC容器 il ...
- (转)编码剖析Spring依赖注入的原理
http://blog.csdn.net/yerenyuan_pku/article/details/52834561 Spring的依赖注入 前面我们就已经讲过所谓依赖注入就是指:在运行期,由外部容 ...
- 什么是DI(依赖注入),依赖注入的原理
这篇文章主要介绍了Spring当中的依赖注入(DI),以及他能注入的数据类型,和他的简单原理,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 什么是依赖注入? D ...
- 浅谈“面向接口编程” :依赖反转 IOC 与 DI (容器控制反转与依赖注入)
IOC:Inversion of Control Containers and the Dependency Injection "Water" by Andy Huan, Mal ...
- DI 依赖注入实现原理
深度理解依赖注入(Dependence Injection) 前面的话:提到依赖注入,大家都会想到老马那篇经典的文章.其实,本文就是相当于对那篇文章的解读.所以,如果您对原文已经有了非常深刻的理解,完 ...
- 依赖注入原理 php,PHP依赖注入原理与用法分析
本文实例讲述了PHP依赖注入原理与用法.分享给大家供大家参考,具体如下: 引言 依然是来自到喜啦的一道面试题,你知道什么是依赖注入吗? 依赖注入(DI)的概念虽然听起来很深奥,但是如果你用过一些新兴的 ...
- spring依赖注入底层原理与源码分析
Spring中有几种依赖注入方式? 1.手动注入-set方法注入和构造器注入 2.自动注入-@Autowired注解和xml注入 autowrire参数: no 默认不开启 byName 根据被注入属 ...
- guice依赖注入原理_Google Guice依赖注入示例教程
guice依赖注入原理 Google Guice is the framework to automate the dependency injection in applications. If y ...
最新文章
- Java程序员,上班那点事儿--程序员也是一般人
- Java8新特性Stream
- 性能测试二十八:环境部署之Dubbo部署
- Java中Comparator比较器的使用以及使用lamba简化代码
- Redis主从复制、哨兵模式和分布式集群
- Exception in thread “main“ java.sql.SQLException: The server time zone value
- RHEL5中实现各种服务的准备条件:
- arm开发板上找不到/dev/i2c-*设备
- Ubuntu 18.04修改默认源为国内源
- 3d打印路径规划 matlab,基于FDM技术的3D打印路径规划技术研究
- 虚幻引擎UE4编辑器介绍
- ppt如何替换其他mo ban_超实用办公软件小技巧之PPT~
- Retrofit2 详解和使用(一)
- 美食杰(个人主页) 上
- 电脑打字习惯让人提笔忘字
- java计算机毕业设计个人交友网站源程序+mysql+系统+lw文档+远程调试
- python数据分析(一):列联分析与方差分析
- ASP.NETCoreWeb教程一:创建和理解Web应用程序,细致入微
- 小岳岳逗乐,林志玲亲临,看科技如何助力十一出游
- 迁移学习(Transfer Learning)-- 概念理解
热门文章
- 没用过这几招,别说你会使用Jupyter Notebook
- 低代码/无代码,在国内还有多长的路要走?
- 小心这 10 个云计算错误!
- “编程能力差,90%会输在这点上!”谷歌开发:方法不对,努力也白费
- iPhone11 全线降价;哈啰出行否认大量裁员;LineageOS 17.1 发布| 极客头条
- 美国AI公司30亿人脸数据被黑,遭科技巨头联合“封杀”
- 微信潜规则:月薪过万的90后,过年都在看什么?
- 罗永浩向老同事道歉;三星漏洞已波及四千万用户;Clojure 1.11 即将发布 | 极客头条...
- 阿里在美申请区块链专利;Win10 最新漏洞被发现;MongoDB 4.2 发布​ | 极客头条...
- Python 爬取 B 站 5000 条视频,揭秘为何千万人为它流泪!