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入门源程序
Oct 09 PHP
linux系统上支持php的 iconv()函数的方法
Oct 01 PHP
用来解析.htgroup文件的PHP类
Sep 05 PHP
在PHP中设置、使用、删除Cookie的解决方法
May 06 PHP
PHP Session 变量的使用方法详解与实例代码
Sep 11 PHP
PHP基础知识介绍
Sep 17 PHP
php 数组字符串搜索array_search技巧
Jul 05 PHP
php入门教程之Zend Studio设置与开发实例
Sep 09 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
Nov 10 PHP
PHP实现的文件操作类及文件下载功能示例
Dec 24 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
May 29 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
Oct 30 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/01/26 PHP
使用php get_headers 判断URL是否有效的解决办法
2013/04/27 PHP
ThinkPHP字符串函数及常用函数汇总
2014/07/18 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
2015/01/20 PHP
php实现cookie加密的方法
2015/03/10 PHP
PHP添加PNG图片背景透明水印操作类定义与用法示例
2019/03/12 PHP
PHP中echo与print区别点整理
2021/03/09 PHP
使用jQuery重置(reset)表单的方法
2014/05/05 Javascript
js实现ifram取父窗口URL地址的方法
2015/02/09 Javascript
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
jQuery对指定元素中指定字符串进行替换的方法
2015/03/17 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
利用transition实现文字上下抖动的效果
2017/01/21 Javascript
微信小程序 九宫格实例代码
2017/01/21 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
2017/04/13 jQuery
jquery实现提示语淡入效果
2017/05/05 jQuery
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
让webpack+vue-cil项目不再自动打开浏览器的方法
2018/09/27 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
[05:41]2014DOTA2西雅图国际邀请赛 小组赛7月10日TOPPLAY
2014/07/10 DOTA
Python实现的检测网站挂马程序
2014/11/30 Python
Python中基本的日期时间处理的学习教程
2015/10/16 Python
win7上python2.7连接mysql数据库的方法
2017/01/14 Python
Python采集代理ip并判断是否可用和定时更新的方法
2018/05/07 Python
用Python一键搭建Http服务器的方法
2018/06/01 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
Python3.5以上版本lxml导入etree报错的解决方案
2019/06/26 Python
Python单链表原理与实现方法详解
2020/02/22 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
python 密码学示例——凯撒密码的实现
2020/09/21 Python
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
初中家长寄语
2014/04/02 职场文书
中学生操行评语大全
2014/04/24 职场文书
一份关于丢失公司财物的检讨书
2014/09/19 职场文书
读《茶花女》有感:山茶花的盛开与凋零
2020/01/17 职场文书