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 sprintf()函数让你的sql操作更安全
Jul 23 PHP
php flush类输出缓冲剖析
Oct 19 PHP
php获取后台Job管理的实现代码
Jun 10 PHP
coreseek 搜索英文的问题详解
Jun 08 PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
Apr 24 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
May 12 PHP
十个PHP高级应用技巧果断收藏
Sep 25 PHP
带你了解PHP7 性能翻倍的关键
Nov 19 PHP
php实现socket推送技术的示例
Dec 20 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
May 01 PHP
PHP连续签到功能实现方法详解
Dec 04 PHP
一文看懂PHP进程管理器php-fpm
Jun 01 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优于Node.js的五大理由分享
2012/09/15 PHP
php的SimpleXML方法读写XML接口文件实例解析
2014/06/16 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
laravel 获取当前url的别名方法
2019/10/11 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
DHTML 中的绝对定位
2006/11/26 Javascript
js实现select组件的选择输入过滤代码
2014/10/14 Javascript
编写简单的jQuery提示插件
2014/12/21 Javascript
js实现图片无缝滚动
2015/12/23 Javascript
AngularJS ng-template寄宿方式用法分析
2016/11/07 Javascript
原生js实现对Ajax的封装(仿jquery)
2017/01/22 Javascript
jquery自定义显示消息数量
2017/12/19 jQuery
JavaScript高阶教程之“==”隐藏下的类型转换
2019/04/11 Javascript
全面分析JavaScript 继承
2019/05/30 Javascript
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
python的常见命令注入威胁
2013/02/18 Python
在Python中操作时间之tzset()方法的使用教程
2015/05/22 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
2017/04/11 Python
Python人脸识别初探
2017/12/21 Python
python 创建一个空dataframe 然后添加行数据的实例
2018/06/07 Python
Python交互环境下实现输入代码
2018/06/22 Python
python opencv旋转图像(保持图像不被裁减)
2018/07/26 Python
Python 随机按键模拟2小时
2020/12/30 Python
调用HTML5的Canvas API绘制图形的快速入门指南
2016/06/17 HTML / CSS
HTML5 文件上传下载的实例代码
2017/07/03 HTML / CSS
工商学院毕业生自荐信
2013/11/12 职场文书
《月球之谜》教学反思
2014/04/10 职场文书
三严三实对照检查材料
2014/08/25 职场文书
教育项目合作协议书格式
2014/10/17 职场文书
安全保证书
2015/01/16 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
2015年社区宣传工作总结
2015/05/20 职场文书
正规借条模板
2015/05/26 职场文书
优秀共产党员主要事迹材料
2015/11/05 职场文书
python获取字符串中的email
2022/03/31 Python