thinkphp5.1框架容器与依赖注入实例分析


Posted in PHP onJuly 23, 2019

本文实例讲述了thinkphp5.1框架容器与依赖注入。分享给大家供大家参考,具体如下:

容器----/thinkphp/library/think/Container.php

依赖注入:将对象类型的数据,以参数的方式传到方法中(解决向类中的方法传对象的问题)

绑定一个类到容器:

public function bindClass()
{
  //把一个类放到容器中:相当于注册到容器中
  \think\Container::set('tmp(别名)','\app\common\Temp(实例)');
  //助手函数bind();
  bind('tmp(别名)','\app\common\Temp(实例)');
  //将容器中的类实例化并取出来用:实例化的同时调用构造器进行初始化
  $tmp = \think\Container::get('tmp',['name' => 'you']);
  $tmp = app('tmp',['name' => 'you']);//助手函数
  return $tmp->getName();
}

绑定一个闭包到容器:

public function bindClosure()
{
  //把一个闭包放到容器中
  \think\Container::set('demo',function($domain) {
    return '域名:' . $domain;
  });
  //将容器中的闭包取出来用
  return \think\Container::get('demo',['domain' => 'www.php.cn']);
}

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
for循环连续求和、九九乘法表代码
Feb 20 PHP
深入了解PHP类Class的概念
Jun 14 PHP
PHP设计模式之命令模式的深入解析
Jun 13 PHP
php 删除cookie方法详解
Dec 01 PHP
PHP获取QQ达人QQ信息的方法
Mar 05 PHP
php检查是否是ajax请求的方法
Apr 16 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
Jan 07 PHP
PHP与jquery实时显示网站在线人数实例详解
Dec 02 PHP
PHP+原生态ajax实现的省市联动功能详解
Aug 15 PHP
PHP下 Mongodb 连接远程数据库的实例代码
Aug 30 PHP
PHP对象的浅复制与深复制的实例详解
Oct 26 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
Mar 11 PHP
Thinkphp5 自定义上传文件名的实现方法
Jul 23 #PHP
PHP中__set()实例用法和基础讲解
Jul 23 #PHP
PHP大文件分块上传功能实例详解
Jul 22 #PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
Jul 22 #PHP
php多进程应用场景实例详解
Jul 22 #PHP
PHP实现的多进程控制demo示例
Jul 22 #PHP
php+lottery.js实现九宫格抽奖功能
Jul 21 #PHP
You might like
php多个文件及图片上传实例详解
2014/11/10 PHP
golang 调用 php7详解及实例
2017/01/04 PHP
javascript中String类的subString()方法和slice()方法
2011/05/24 Javascript
jQuery :nth-child前有无空格的区别分析
2011/07/11 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
innerText 使用示例
2014/01/23 Javascript
对js关键字命名的疑问介绍
2014/04/25 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
VueRouter导航守卫用法详解
2017/12/25 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
利用d3.js制作连线动画图与编辑器的方法实例
2019/09/05 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
2019/11/04 Javascript
vue-preview动态获取图片宽高并增加旋转功能的实现
2020/07/29 Javascript
浅谈vue.watch的触发条件是什么
2020/11/07 Javascript
python将字典内容存入mysql实例代码
2018/01/18 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
Python中一些深不见底的“坑”
2019/06/12 Python
Python何时应该使用Lambda函数
2019/07/02 Python
Python 写入训练日志文件并控制台输出解析
2019/08/13 Python
Python3进制之间的转换代码实例
2019/08/24 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
如何通过python检查文件是否被占用
2020/12/18 Python
美国著名的家居用品购物网站:Bed Bath & Beyond
2018/01/05 全球购物
西班牙最大的婴儿用品网上商店:Bebitus
2019/05/30 全球购物
美国在线肉类和海鲜配送:Crowd Cow
2020/10/02 全球购物
教师业务学习制度
2014/01/25 职场文书
热爱祖国演讲稿
2014/05/04 职场文书
停水通知
2015/04/16 职场文书
2016年教师节感恩寄语
2015/12/04 职场文书
2016年大学生社区服务活动总结
2016/04/06 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js
基于Redis的List实现特价商品列表功能
2021/08/30 Redis