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经典的给图片加水印程序
Dec 06 PHP
Smarty+QUICKFORM小小演示
Feb 25 PHP
php SQL之where语句生成器
Mar 24 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
Jun 25 PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
Jun 27 PHP
php保存任意网络图片到服务器的方法
Apr 14 PHP
php实现数组中索引关联数据转换成json对象的方法
Jul 08 PHP
详解PHP错误日志的获取方法
Jul 20 PHP
PHP实现抓取迅雷VIP账号的方法
Jul 30 PHP
php防止CC攻击代码 php防止网页频繁刷新
Dec 21 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
Oct 09 PHP
php+ajax实现文件切割上传功能示例
Mar 03 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
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
2011/06/16 PHP
PHP捕获Fatal error错误的方法
2014/06/11 PHP
JavaScript Archive Network 集合
2007/05/12 Javascript
ext 代码生成器
2009/08/07 Javascript
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
jquery动画3.创建一个带遮罩效果的图片走廊
2012/08/24 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
Jquery数字上下滚动动态切换插件
2015/08/08 Javascript
实现高性能JavaScript之执行与加载
2016/01/30 Javascript
js停止冒泡和阻止浏览器默认行为的简单方法
2016/05/15 Javascript
JavaScript实现DOM对象选择器
2016/09/24 Javascript
Bootstrap基本组件学习笔记之导航(10)
2016/12/07 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
2017/05/19 Javascript
AngularJS动态绑定ng-options的ng-model实例代码
2017/06/21 Javascript
微信小程序中吸底按钮适配iPhone X方案
2017/11/29 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
2018/09/14 Javascript
Node.js在图片模板上生成二维码图片并附带底部文字说明实现详解
2019/08/07 Javascript
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
使用python-pptx包批量修改ppt格式的实现
2020/02/14 Python
如何利用python检测图片是否包含二维码
2020/10/15 Python
HTML5 播放 RTSP 视频的实例代码
2019/07/29 HTML / CSS
全球知名的婚恋交友网站:Match.com
2017/01/05 全球购物
EQVVS官网:设计师男装和女装
2018/10/24 全球购物
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
学年末自我鉴定
2014/01/21 职场文书
运动会通讯稿300字
2014/02/02 职场文书
《得道多助,失道寡助》教学反思
2014/04/19 职场文书
股指期货心得体会
2014/09/10 职场文书
2014离婚协议书范文(3篇)
2014/11/29 职场文书
汽车车尾标语大全
2015/08/11 职场文书
周末问候语大全
2015/11/10 职场文书
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS
Spring Security中用JWT退出登录时遇到的坑
2021/10/16 Java/Android
MySQL 计算连续登录天数
2022/05/11 MySQL