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 相关文章推荐
mysql 中InnoDB和MyISAM的区别分析小结
Apr 15 PHP
PHP逐行输出(ob_flush与flush的组合)
Feb 04 PHP
PHP获取用户的浏览器与操作系统信息的代码
Sep 04 PHP
ThinkPHP3.1基础知识快速入门
Jun 19 PHP
PHP中substr()与explode()函数用法分析
Nov 24 PHP
php设计模式之单例模式实例分析
Feb 25 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
Dec 17 PHP
yii用户注册表单验证实例
Dec 26 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
Sep 16 PHP
php获取用户真实IP和防刷机制的实例代码
Nov 28 PHP
PHP PDOStatement::rowCount讲解
Feb 01 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
Mar 23 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网页后退不再出现过期
2007/03/08 PHP
php操作(删除,提取,增加)zip文件方法详解
2015/03/12 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
2015/07/08 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
2015/07/10 PHP
Yii模型操作之criteria查找数据库的方法
2016/07/15 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
JavaScript 语法集锦 脚本之家基础推荐
2009/11/15 Javascript
重构Javascript代码示例(重构前后对比)
2013/01/23 Javascript
jquery及原生js获取select下拉框选中的值示例
2013/10/25 Javascript
javascript解析json数据的3种方式
2014/05/08 Javascript
node.js中的fs.utimesSync方法使用说明
2014/12/15 Javascript
JS实现选项卡实例详解
2015/11/17 Javascript
理解javascript模块化
2016/03/28 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
Form表单按回车自动提交表单的实现方法
2016/11/18 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
2017/08/08 jQuery
深入理解vue-router之keep-alive
2017/08/31 Javascript
node通过express搭建自己的服务器
2017/09/30 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
2019/04/24 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
js实现网页版贪吃蛇游戏
2020/02/22 Javascript
Python 实现随机数详解及实例代码
2017/04/15 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
2017/08/24 Python
Python数字图像处理之霍夫线变换实现详解
2018/01/12 Python
python生成n个元素的全组合方法
2018/11/13 Python
python爬虫要用到的库总结
2020/07/28 Python
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
老海军美国官网:Old Navy
2016/09/05 全球购物
Linux面试经常问的文件系统操作命令
2016/10/04 面试题
学生周末回家住宿长期请假条
2014/02/15 职场文书
教师党员公开承诺书
2014/03/25 职场文书
股东授权委托书范文
2014/09/13 职场文书
项目合作意向书
2015/05/08 职场文书