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运行出现Call to undefined function curl_init()的解决方法
Nov 02 PHP
PHP获取文件的MD5值并判断是否被修改的例子
Jun 19 PHP
PIGCMS 如何关闭聊天机器人
Feb 12 PHP
php限制ip地址范围的方法
Mar 31 PHP
PHP中4种常用的抓取网络数据方法
Jun 04 PHP
php实现可逆加密的方法
Aug 11 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 PHP
对比分析php中Cookie与Session的异同
Feb 19 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
Dec 25 PHP
laravel-admin select框默认选中的方法
Oct 03 PHP
CI框架简单分页类用法示例
Jun 06 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输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
实现在同一方法中获取当前方法中新赋值的session值解决方法
2014/06/26 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
php常用表单验证类用法实例
2015/06/18 PHP
php字符串操作针对负值的判断分析
2016/07/28 PHP
Firefox getBoxObjectFor getBoundingClientRect联系
2008/10/26 Javascript
学习ExtJS Column布局
2009/10/08 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
jquery实现适用于门户站的导航下拉菜单效果代码
2015/08/24 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
微信小程序CSS3动画下拉菜单效果
2018/11/04 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
Vue实现附件上传功能
2020/05/28 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
2020/07/18 Javascript
[03:41]DOTA2上海特锦赛小组赛第三日recap精彩回顾
2016/02/28 DOTA
Python作用域用法实例详解
2016/03/15 Python
win10系统中安装scrapy-1.1
2016/07/03 Python
Python探索之URL Dispatcher实例详解
2017/10/28 Python
Flask框架各种常见装饰器示例
2018/07/17 Python
Python 新建文件夹与复制文件夹内所有内容的方法
2018/10/27 Python
解决使用export_graphviz可视化树报错的问题
2019/08/09 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
2019/10/14 Python
Django 框架模型操作入门教程
2019/11/05 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
宝信软件JAVA工程师面试经历
2012/08/19 面试题
C面试题
2015/10/08 面试题
中科方德软件测试面试题
2016/04/21 面试题
会计专业自我鉴定范文
2013/12/29 职场文书
幼儿园优秀教师事迹
2014/02/13 职场文书
公司委托书范本
2014/04/04 职场文书
公司会议策划方案
2014/05/17 职场文书
企业员工爱岗敬业演讲稿
2014/08/26 职场文书
Redis 哨兵集群的实现
2021/06/18 Redis
如何用Python搭建gRPC服务
2021/06/30 Python
关于JS中的作用域中的问题思考分享
2022/04/06 Javascript
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL