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 相关文章推荐
一个可查询所有表的“通用”查询分页类
Oct 09 PHP
PHP 引用文件技巧
Mar 02 PHP
php中使用explode查找某个字符是否存在的方法
Jul 12 PHP
解析dedeCMS验证码的实现代码
Jun 07 PHP
PHP实现Soap通讯的方法
Nov 03 PHP
PHP使用feof()函数读文件的方法
Nov 07 PHP
PHP实现通过URL提取根域名
Mar 31 PHP
php实现在站点里面添加邮件发送的功能
Apr 28 PHP
示例详解Laravel的注册重构
Aug 14 PHP
PHP面向对象学习之parent::关键字
Jan 18 PHP
php实现生成code128条形码的方法详解
Jul 19 PHP
PHP 实现缩略图
Mar 09 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用数组返回无限分类的列表数据的代码
2010/08/08 PHP
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
js字符串转换成xml对象并使用技巧解读
2013/04/18 Javascript
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
2013/11/28 Javascript
JavaScript中的操作符==与===介绍
2014/12/31 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
Bootstrap下拉菜单效果实例代码分享
2016/06/30 Javascript
React实现双向绑定示例代码
2016/09/19 Javascript
详解Vue组件之间的数据通信实例
2017/06/17 Javascript
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
2019/03/14 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
微信小程序自定义多列选择器使用详解
2019/06/21 Javascript
vue fetch中的.then()的正确使用方法
2020/04/17 Javascript
Python实现统计英文单词个数及字符串分割代码
2015/05/28 Python
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
python3.4.3下逐行读入txt文本并去重的方法
2018/04/29 Python
python操作日志的封装方法(两种方法)
2019/05/23 Python
详解numpy的argmax的具体使用
2019/05/27 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
python中有关时间日期格式转换问题
2019/12/25 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
Html5移动端弹幕动画实现示例代码
2018/08/27 HTML / CSS
2013年大学生的自我鉴定
2013/10/24 职场文书
集团薪酬管理制度
2014/01/13 职场文书
三年级音乐教学反思
2014/01/28 职场文书
小学教师评语大全
2014/04/23 职场文书
2014年图书管理员工作总结
2014/12/01 职场文书
500字小学生检讨书
2015/02/19 职场文书
培训班通知
2015/04/25 职场文书
2016年安全生产先进个人事迹材料
2016/02/29 职场文书
dubbo服务整合zipkin详解
2021/07/26 Java/Android