Laravel 5.4向IoC容器中添加自定义类的方法示例


Posted in PHP onAugust 15, 2017

IoC 容器

容器,字面上理解就是装东西的东西。常见的变量、对象属性等都可以算是容器。一个容器能够装什么,全部取决于你对该容器的定义。当然,有这样一种容器,它存放的不是文本、数值,而是对象、对象的描述(类、接口)或者是提供对象的回调,通过这种容器,我们得以实现许多高级的功能,其中最常提到的,就是 “解耦” 、“依赖注入(DI)”。

IoC 容器 —— Laravel 的核心

Laravel 的核心就是一个 IoC 容器,根据文档,称其为“服务容器”,顾名思义,该容器提供了整个框架中需要的一系列服务。作为初学者,很多人会在这一个概念上犯难,因此,我打算从一些基础的内容开始讲解,通过理解面向对象开发中依赖的产生和解决方法,来逐渐揭开“依赖注入”的面纱,逐渐理解这一神奇的设计理念。

本文将详细介绍关于Laravel5.4向IoC容器添加自定义类的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

IoC容器添加自定义类

1、假设我们要建一个交易类,app/Trade/Sale.php

<?php
namespace App\Trade;
class Sale
{
public function exchange()
{
 dd('交易成功啦!');
}
}

2、在Providers目录下创建一个服务提供者 TradeServiceProvider

php artisan make:provider TradeServiceProvider

3、然后在 TradeServiceProvider.php 的register方法中将我们的类进行绑定

/**
 * Register the application services.
 *
 * @return void
 */
public function register()
{
 //
 $this->app->bind('trade',function(){
  return new Sale();
 });
}

4、接下来要去 config/app.php 下的providers数组中增加一行,

App\Providers\TradeServiceProvider::class,

5、然后在我们的路由中写一个测试

Route::get('/',function (){
$trade = app('trade');
dd($trade->exchange());
}

输出结果:交易成功啦!

6、至此我们就将我们自己的类添加到IoC 容器中了

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
小偷PHP+Html+缓存
Dec 20 PHP
php实现可以设置中奖概率的抽奖程序代码分享
Jan 19 PHP
php判断是否为json格式的方法
Mar 04 PHP
使用PHP函数scandir排除特定目录
Jun 12 PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 PHP
php判断数组中是否存在指定键(key)的方法
Mar 17 PHP
php获取从html表单传递数组的方法
Mar 20 PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
Nov 25 PHP
Yii2实现UploadedFile上传文件示例
Feb 15 PHP
PHP微信企业号开发之回调模式开启与用法示例
Nov 25 PHP
PHP笛卡尔积实现算法示例
Jul 30 PHP
PHP count()函数讲解
Feb 03 PHP
PHP高精确度运算BC函数库实例详解
Aug 15 #PHP
PHP+原生态ajax实现的省市联动功能详解
Aug 15 #PHP
laravel学习笔记之模型事件的几种用法示例
Aug 15 #PHP
PHP实现的回溯算法示例
Aug 15 #PHP
php简单中奖算法(实例)
Aug 15 #PHP
PHP实现的随机红包算法示例
Aug 14 #PHP
详解PHP中的 input属性(隐藏 只读 限制)
Aug 14 #PHP
You might like
php数组函数序列之sort() 对数组的元素值进行升序排序
2011/11/02 PHP
php实现cookie加密的方法
2015/03/10 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
尽可能写&quot;友好&quot;的&quot;Javascript&quot;代码
2007/01/09 Javascript
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
js substr、substring和slice使用说明小记
2011/09/15 Javascript
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
详解JavaScript的AngularJS框架中的作用域与数据绑定
2016/03/04 Javascript
浅谈$_FILES数组为空的原因
2017/02/16 Javascript
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
jquery拖动改变div大小
2017/07/04 jQuery
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
python3使用SMTP发送简单文本邮件
2018/06/19 Python
Python面向对象之类和对象实例详解
2018/12/10 Python
不到20行代码用Python做一个智能聊天机器人
2019/04/19 Python
python输出带颜色字体实例方法
2019/09/01 Python
Python算法的时间复杂度和空间复杂度(实例解析)
2019/11/19 Python
python实现从ftp服务器下载文件
2020/03/03 Python
Python任务调度模块APScheduler使用
2020/04/15 Python
Python用摘要算法生成token及检验token的示例代码
2020/12/01 Python
python中类与对象之间的关系详解
2020/12/16 Python
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
介绍一下SQL Server的全文索引
2013/08/15 面试题
extern是什么意思
2016/03/10 面试题
实习自我评价怎么写
2013/12/02 职场文书
酒后驾驶检讨书
2014/01/27 职场文书
采购类个人求职的自我评价
2014/02/18 职场文书
班级心理活动总结
2014/07/04 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
谢师宴答谢词
2015/01/05 职场文书
2015年监理工作总结范文
2015/04/07 职场文书
求职自我评价参考范文
2019/05/16 职场文书