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
Mysql中limit的用法方法详解与注意事项
Apr 19 PHP
解析php中var_dump,var_export,print_r三个函数的区别
Jun 21 PHP
json的键名为数字时的调用方式(示例代码)
Nov 15 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
Jan 30 PHP
php实现的简单美国商品税计算函数
Jul 13 PHP
CodeIgniter扩展核心类实例详解
Jan 20 PHP
PHP面向对象程序设计之对象生成方法详解
Dec 02 PHP
php微信公众平台示例代码分析(二)
Dec 06 PHP
PHP编程实现脚本异步执行的方法
Aug 09 PHP
php-msf源码详解
Dec 25 PHP
分析php://output和php://stdout的区别
May 06 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树的代码,可以嵌套任意层
2006/10/09 PHP
批量获取memcache值并按key的顺序返回的实现代码
2011/06/14 PHP
PHP URL路由类实例
2013/11/12 PHP
PHP $_FILES中error返回值详解
2014/01/30 PHP
PHP生成图片验证码、点击切换实例
2014/06/25 PHP
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
PHP命名空间定义与用法实例分析
2019/08/14 PHP
js计算页面刷新的次数
2009/07/20 Javascript
JS trim去空格的最佳实践
2011/10/30 Javascript
javascript基础之查找元素的详细介绍(访问节点)
2013/07/05 Javascript
jQuery中index()方法用法实例
2014/12/27 Javascript
javascript格式化json显示实例分析
2015/04/21 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
2016/06/13 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
JS常用排序方法实例代码解析
2020/03/03 Javascript
Node.js API详解之 assert模块用法实例分析
2020/05/26 Javascript
python 安装virtualenv和virtualenvwrapper的方法
2017/01/13 Python
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
python连接、操作mongodb数据库的方法实例详解
2019/09/11 Python
pandas DataFrame 数据选取,修改,切片的实现
2020/04/24 Python
python模块如何查看
2020/06/16 Python
Python基于yaml文件配置logging日志过程解析
2020/06/23 Python
django rest framework使用django-filter用法
2020/07/15 Python
使用Python将语音转换为文本的方法
2020/08/10 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
JAVA软件工程师测试题
2014/07/25 面试题
简历中自我评价分享
2013/10/09 职场文书
求职信模板
2014/05/23 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
先进教师个人总结
2015/02/11 职场文书
公务员个人总结
2015/02/12 职场文书
小学生大队委竞选稿
2015/11/20 职场文书
go web 预防跨站脚本的实现方式
2021/06/11 Golang