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创建PDF中文文档
Oct 09 PHP
聊天室php&mysql(四)
Oct 09 PHP
利用PHP生成静态HTML文档的原理
Oct 29 PHP
深入PHP5中的魔术方法详解
Jun 17 PHP
PHP实现克鲁斯卡尔算法实例解析
Aug 22 PHP
PHP中使用正则表达式提取中文实现笔记
Jan 20 PHP
PHP表单数据写入MySQL数据库的代码
May 31 PHP
Discuz论坛密码与密保加密规则
Dec 19 PHP
php 中的closure用法详解
Jun 12 PHP
基于Laravel实现的用户动态模块开发
Sep 21 PHP
PHP实现一个轻量级容器的方法
Jan 28 PHP
Laravel框架源码解析之反射的使用详解
May 14 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写的基于Memcache的Queue实现代码
2011/11/27 PHP
PHP文件大小格式化函数合集
2014/03/10 PHP
php数组去除空值函数分享
2015/02/02 PHP
XHProf报告字段含义的解析
2016/05/17 PHP
Mac下关于PHP环境和扩展的安装详解
2019/10/17 PHP
表单提交时自动复制内容到剪贴板的js代码
2007/03/16 Javascript
javascript css在IE和Firefox中区别分析
2009/02/18 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
深入理解javascript中return的作用
2013/12/30 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
2015/08/30 Javascript
浅谈angular.js中实现双向绑定的方法$watch $digest $apply
2015/10/14 Javascript
jquery实现全选、反选、获得所有选中的checkbox
2020/09/13 Javascript
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
2016/07/01 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
2016/08/10 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
2018/04/10 Javascript
Vue封装的可编辑表格插件方法
2018/08/28 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
2018/09/21 Javascript
JavaScript对JSON数组简单排序操作示例
2019/01/31 Javascript
如何从零开始手写Koa2框架
2019/03/22 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
[01:02:02]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第二局
2016/02/25 DOTA
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
Python2和Python3的共存和切换使用
2019/04/12 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
有机童装:Toby Tiger
2018/05/23 全球购物
端午节粽子促销活动方案
2014/02/02 职场文书
课例研修方案
2014/05/31 职场文书
竞聘演讲稿开场白
2014/08/25 职场文书
师德师风自我评价范文
2014/09/11 职场文书
2015七夕情人节宣传语
2015/07/14 职场文书
初中语文教学随笔
2015/08/15 职场文书
公证书
2019/04/17 职场文书
大型强子对撞机再次重启探索“第五种自然力”
2022/04/29 数码科技
python可视化分析绘制带趋势线的散点图和边缘直方图
2022/06/25 Python