$this->app->singleton('ReportServices', function () {
return new \App\Services\ReportServices();
});

以后在其他class里我可以用

app('ReportServices')->xxxxxx();

去替换
$services = new \App\Services\ReportServices();
$services->xxxxxx(); 所谓ioc 容器的说法我觉得用服务容器的更合适,ioc只是一种思想,实现ioc可以是依赖注入,也可以服务定位器,策略模式,思想和实现之间我觉得不能混为一谈。laravel中的容器是把被依赖的类当作服务,每当需要传入被依赖的类时,比如你想使用缓存类,换句话说你现在依赖一个缓存服务时,由一个叫做容器的类负责具体的实例化,其工作就是解析类,解析出你的缓存服务是memcache还是redis,还是别的什么,然后实例化,注入到你的消费类中,如此就实现了ioc。当然这需要抽象的配合,否则你注入个别的,方法不一样当然无法工作了。容器只是一种管理类的方式。那么问题来了,容器怎么知道要创建哪个类的实例?也就是类是如何被解析的?这个就可以在service provider里绑定,你把需要用的实现在这里绑定,当容器需要时就知道解析到哪个类了。那么问题又来了,程序如何知道都有哪些service provider? 这又在config/app里面定义的,专业点说注册服务。我建议你自己亲自动手创建一个service provider 绑定一个服务,注册,又或者你玩玩别的独立的服务容器,比如pimple,把他用在你自己的项目中,就很好理解了。至于facade,更好理解,实际是通过容器解析到实际的类,然后通过魔术方法去实际的类上执行方法。我也是醉了。这也是很多人批评facade的原因,这东西多包装了一层语法糖而已。

Laravel 文档中的 Service Providers的更多相关文章

  1. java POI往word文档中指定位置插入表格

    1.Service  demo import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.a ...

  2. 通过Swagger文档生成前端service文件,提升前端开发效率

    在企业级的项目开发过程中,一般会采用前后端分离的开发方式,前后端通过api接口进行通信,所以接口文档就显得十分的重要. 目前大多数的公司都会引入Swagger来自动生成文档,大大提高了前后端分离开发的 ...

  3. C# 在Word文档中生成条形码

    C# 在Word文档中生成条形码 简介 条形码是由多个不同的空白和黑条按照一定的顺序组成,用于表示各种信息如产品名称.制造商.类别.价格等.目前,条形码在我们的日常生活中有着很广泛的应用,不管是在图书 ...

  4. C# 提取Word文档中的图片

    C# 提取Word文档中的图片 图片和文字是word文档中两种最常见的对象,在微软word中,如果我们想要提取出一个文档内的图片,只需要右击图片选择另存为然后命名保存就可以了,今天这篇文章主要是实现使 ...

  5. 如何使用免费PDF控件从PDF文档中提取文本和图片

             如何使用免费PDF控件从PDF文档中提取文本和图片 概要 现在手头的项目有一个需求是从PDF文档中提取文本和图片,我以前也使用过像iTextSharp, PDFBox 这些免费的PD ...

  6. java使用正则从爬虫爬的txt文档中提取QQ邮箱

    我的需求是从一堆文档中提取出qq邮箱,写了这篇帖子,希望能帮助和我有一样需求的人,谢谢!...... import java.io.BufferedReader; import java.io.Fil ...

  7. [No00005B] word快速插入当前时间&怎样一次性删除文档中的全部链接

    按Alt+Shift+D键来插入系统日期 按Alt+Shift+T键则插入系统当前时间 同时,在插入的时间上右键->编辑域 一次性删除文档中的全部链接: 方法1:一劳永逸法(推荐) 因为链接大多 ...

  8. 把word文档中的所有图片导出

    把word文档中的所有图片导出 end

  9. Matlab中fread函数的高级使用方法及其帮助文档中容易引起歧义的地方

    参考资料:http://cn.mathworks.com/help/matlab/ref/fread.html 注意:参考资料针对的Matlab版本号R2015a,我使用的是R2013b. Matla ...

随机推荐

  1. Word中怎么用MathType编辑公式

    现如今,用电脑办公学习已经是一个不可阻挡的潮流.而与之相应的就是需要在这些办公软件进行相应的使用,最典型的一种就是要在Word编辑公式.其实在Word中编辑公式是一个很常见的事情,虽然它很常见,但是却 ...

  2. 使用 Estimator 构建卷积神经网络

    来源于:https://tensorflow.google.cn/tutorials/estimators/cnn 强烈建议前往学习 tf.layers 模块提供一个可用于轻松构建神经网络的高级 AP ...

  3. Mac 安装Bower

    1.安装bower,得首先安装node: 1 brew install npm  //npm是nodejs的程序包管理器,如果安装过nodejs,可忽略此步. 2.安装Git(因为需要从Git仓库获取 ...

  4. OSG设置警告等级

    osg::setNotifyLevel(osg::FATAL);//控制台只输出严重错误信息

  5. Android 切换主题 (二)

    Android 切换主题 (二) 背景 我原来写过一篇文章关于 android 切换主题的文章 -- Android 切换主题以及换肤的实现 , 里面介绍了如何使用 setTheme() 来切换主题, ...

  6. Android Design Support Library 中控件的使用简单介绍(一)

    Android Design Support Library 中控件的使用简单介绍(一) 介绍 在这个 Lib 中主要包含了 8 个新的 material design 组件!最低支持 Android ...

  7. java解析xml字符串(用dom4j)

    package com.smsServer.Dhst; import java.util.HashMap; import java.util.Iterator; import java.util.Ma ...

  8. Java中static关键字用法总结

      1.     静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: · 它们仅能调用其他的static 方法. · ...

  9. Spring在Web应用中使用的原理

    那Spring如何在web应用中使用 ①加入Spring web应用的特定jar包spring-web-4.0.0.RELEASE.jar.spring-webmvc-4.0.0.RELEASE.ja ...

  10. base64图片解析

    大家可能注意到了,网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如:data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAEAAAAk ...