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 相关文章推荐
php中的三元运算符使用说明
Jul 03 PHP
php xml常用函数的集合(比较详细)
Jun 06 PHP
Codeigniter实现处理用户登录验证后的URL跳转
Jun 12 PHP
PHP判断数据库中的记录是否存在的方法
Nov 14 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
如何使用PHP对网站验证码进行破解
Sep 17 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
Mar 01 PHP
浅谈PHP中其他类型转化为Bool类型
Mar 28 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
May 18 PHP
使用Codeigniter重写insert的方法(推荐)
Mar 23 PHP
完美解决thinkphp唯一索引重复时出错的问题
Mar 31 PHP
PHP实现根据数组的值进行分组的方法
Apr 20 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
ucenter通信原理分析
2015/01/09 PHP
PHP中把对象转换为关联数组代码分享
2015/04/09 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
2016/08/19 PHP
javascript  Error 对象 错误处理
2008/05/18 Javascript
js Function类型
2011/12/04 Javascript
js限制textarea每行输入字符串长度的代码
2012/10/31 Javascript
JS获取几种URL地址的方法小结
2014/02/26 Javascript
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
JS触发服务器控件的单击事件(详解)
2016/08/06 Javascript
AngularJS表格样式简单设置方法示例
2017/03/03 Javascript
AngularJS 仿微信图片手势缩放的实例
2017/09/28 Javascript
微信小程序实现验证码获取倒计时效果
2018/02/08 Javascript
angular2实现统一的http请求头方法
2018/08/13 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
Vue 配合eiement动态路由,权限验证的方法
2018/09/26 Javascript
windows下wxPython开发环境安装与配置方法
2014/06/28 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
使用pandas的DataFrame的plot方法绘制图像的实例
2018/05/24 Python
解决python3读取Python2存储的pickle文件问题
2018/10/25 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
2019/09/06 Python
基于numpy中的expand_dims函数用法
2019/12/18 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
python print 格式化输出,动态指定长度的实现
2020/04/12 Python
Django实现celery定时任务过程解析
2020/04/21 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
详解CSS的border边框属性及其在CSS3中的新特性
2016/05/10 HTML / CSS
CSS3轻松实现圆角效果
2017/11/09 HTML / CSS
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
Boda Skins皮衣官网:奢侈皮夹克,全球配送
2016/12/15 全球购物
学生出入校管理制度
2014/01/16 职场文书
2014大学生职业生涯规划书最新范文
2014/09/13 职场文书
怎样写离婚协议书
2015/01/26 职场文书
鼋头渚导游词
2015/02/05 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书