博主信息
博文 65
粉丝 3
评论 4
访问量 80607
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
依赖注入与容器
无耻的鱼
原创
1113人浏览过

依赖注入其实就是相当于注册树

容器呢 就是相当于给当前对象加工了一下 或者说 包装了一下

GZ44EGRMNYO@~1P8R)}QMJC.png


Temp实例

<?php 
namespace app\common;

/**
 * 
 */
class Temp
{
	private $name;

	public function __construct($name ='李四')
	{
		$this->name=$name;
	}

	function setName($name)
	{
		$this->name=$name;
	}
	
	function getName()
	{
		return '方法是:'.__METHOD__.',属性是:'.$this->name;
	}

	//__METHOD__   app\common\Temp::getName
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

<?php 
namespace app\index\controller;

/**
 * 容器与依赖注入
 */

class Dome1
{
	//http://tp.io/Index.php/index/Dome1/getName/name/李四
	public function getName($name='张三')
	{
		return '你好'.$name;
	}


	//触发依赖注入
	public function getMethod(\app\common\Temp $temp)
	{
		$temp->setName('王五');
		return $temp->getName();

	}


	//绑定一个类到容器
	public function bindClass()
	{
		//把一个类放到容器中:相当于注册到容器(我觉得是相当于给这个类起了一个名字)
		\think\Container::set('temp','\app\common\Temp');
		//bind()助手函数=\think\Container::set


		$temp = \think\Container::get('temp',['name'=>'娃哈哈哈哈']);
		// app()助手函数=\think\Container::get

		return $temp->getName();
	}


	// 绑定一个闭包到容器
	public function bindClosure()
	{
		
		\think\Container::set('demo',function($domes){
			return '名字是'.$domes;
		});
		

		$temp = \think\Container::get('demo',['domes'=>'喜洋洋']);
		

		return $temp;
	}

}

运行实例 »

点击 "运行实例" 按钮查看在线实例


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学