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 相关文章推荐
dedecms后台验证码总提示错误的解决方法
Mar 21 PHP
PHP获取文件绝对路径的代码(上一级目录)
May 29 PHP
php 中英文语言转换类代码
Aug 11 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
Jun 24 PHP
codeigniter使用技巧批量插入数据实例方法分享
Dec 31 PHP
PHP连接MySQL的2种方法小结以及防止乱码
Mar 11 PHP
php实现中文字符截取防乱码方法汇总
Apr 29 PHP
twig模板常用语句实例小结
Feb 04 PHP
PHP针对字符串开头和结尾的判断方法
Jul 11 PHP
PHP PDOStatement::fetchObject讲解
Feb 01 PHP
PHP getNamespaces()函数讲解
Feb 03 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
May 02 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
人族 Terran 基本策略
2020/03/14 星际争霸
php mssql 分页SQL语句优化 持续影响
2009/04/26 PHP
纯真IP数据库的应用 IP地址转化成十进制
2009/06/14 PHP
php 提速工具eAccelerator 配置参数详解
2010/05/16 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
2014/09/16 PHP
php通过正则表达式记取数据来读取xml的方法
2015/03/09 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
JavaScript 页面编码与浏览器类型判断代码
2010/06/03 Javascript
js 上传图片预览问题
2010/12/06 Javascript
js 获取屏幕各种宽高的方法(浏览器兼容)
2013/05/15 Javascript
jQuery图片滚动图片的效果(另类实现)
2013/06/02 Javascript
JavaScript AJAX之惰性载入函数
2014/08/27 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
bootstrap模态框示例代码分享
2017/05/17 Javascript
使用express搭建一个简单的查询服务器的方法
2018/02/09 Javascript
vue--点击当前增加class,其他删除class的方法
2018/09/15 Javascript
微信小程序解除10个请求并发限制
2018/12/18 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
在小程序中推送模板消息的实现方法
2019/07/22 Javascript
vscode中Vue别名路径提示的实现
2020/07/31 Javascript
详解在Python中处理异常的教程
2015/05/24 Python
Python 正则表达式实现计算器功能
2017/04/29 Python
使用python3构建文件传输的方法
2019/02/13 Python
python3 线性回归验证方法
2019/07/09 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
2019/08/26 Python
HTML5视频支持检测(检查浏览器是否支持视频播放)
2013/06/08 HTML / CSS
英国礼品和生活方式品牌:Treat Republic
2020/11/21 全球购物
泰国在线书店:SE-ED
2020/06/21 全球购物
国际商务专业学生个人的自我评价
2013/09/28 职场文书
社区工作者先进事迹
2014/01/18 职场文书
关于保护环境的建议书
2014/05/13 职场文书
小学生美德少年事迹材料
2014/08/24 职场文书
世界气象日活动总结
2015/02/27 职场文书
《雷雨》教学反思
2016/02/20 职场文书
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python