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+mysql保存和输出文件
Oct 09 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
Aug 10 PHP
PHPMailer的主要功能特点和简单使用说明
Feb 17 PHP
php使用多个进程同时控制文件读写示例
Feb 28 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
Feb 10 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
Mar 23 PHP
php获取文件名称和扩展名的方法
Feb 07 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
Sep 30 PHP
yii2中关于加密解密的那些事儿
Jun 12 PHP
PHP安装memcache扩展的步骤讲解
Feb 14 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
Oct 30 PHP
php将xml转化对象的实例详解
Nov 17 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
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
bootstrap输入框组代码分享
2016/06/07 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
2016/07/21 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
2017/01/20 Javascript
layui前端框架之table表数据的刷新方法
2018/08/17 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
微信小程序 slot踩坑的解决
2019/04/01 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
[01:16:16]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第二场 1月8日
2021/03/11 DOTA
python实现文件路径和url相互转换的方法
2015/07/06 Python
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
python处理csv中的空值方法
2018/06/22 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
python中正则表达式与模式匹配
2019/05/07 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
通过cmd进入python的实例操作
2019/06/26 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
python中使用while循环的实例
2019/08/05 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
python同时遍历两个list用法说明
2020/05/02 Python
python中常见错误及解决方法
2020/06/21 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
2020/11/27 Python
Python爬虫之App爬虫视频下载的实现
2020/12/08 Python
Chi Chi London官网:购买连衣裙和礼服
2020/10/25 全球购物
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
土木工程建筑专业毕业生求职信
2013/10/21 职场文书
新闻学毕业生自荐信
2013/11/15 职场文书
机电工程学生自荐信范文
2013/12/07 职场文书
领导班子整改方案和个人整改措施
2014/10/25 职场文书
详解Vue中$props、$attrs和$listeners的使用方法
2022/02/18 Vue.js