laravel框架中你所用到的依赖注入详解

Laravel中的依赖注入
面试时被问到laravel框架的依赖注入原理 一脸懵逼 下来后研究了一番
之前就听说Laravel的特点中依赖注入就是其中之一

Laravel提供了多种依赖注入的方式。首先就将实现构造器或者方法参数的注入,这种依赖注入的方式比较简单,也不需要怎么配置。只要在方法的参数中写入类的类型,这个时候,类的实例就会注入到这个参数上,我们在使用的时候,就可以直接使用,而不用我们再去new这个类的实例,这个new的过程,已经由框架替我们做了

例如:

class Test
{//这是一个类
}class TestController extend Controller
{public function __contract(Test $test){print_r($test);}
}

我们不用对test 变量做任何的赋值操作,Laravel会帮我们把Test的实例赋值给$test变量,这就是一种依赖注入的使用。我们的依赖的Test就这样被注入到了参数里头。我们平时使用Laravel的控制器中接收页面参数的时候,就是依赖注入。

那么,我们在Java中常用的一种面向接口编程的方式,Laravel框架也同样提供了,这种面向接口编程的方式。这种方式很简单,首先我们的所有调用都是面向接口的。我们这里先写一个接口:

interface TestInterface
{//接口的方法
}

定义好了接口,我们就要定义接口的实现类:

class TestService implements TestInterface
{//实现的方法
}

如何将依赖完成呢?Laravel的实现很简单,通过一个方法可以将实现和接口绑定起来。我们在Laravel框架下找app/Providers/AppServiceProider.php这个文件,打开之后他是长这样的:

class AppServiceProvider extends ServiceProvider
{public function boot(){}public function register(){//}
}

在register方法下降接口绑定到实现上,在其中加入:

$this->app->bind(
'Interface\TestInterface',
'Service\TestService'
);

这样在方法的参数中,只要把接口写上,就可以注入依赖了。

laravel 依赖注入原理理解相关推荐

  1. 依赖注入原理 php,PHP依赖注入原理与用法分析

    本文实例讲述了PHP依赖注入原理与用法.分享给大家供大家参考,具体如下: 引言 依然是来自到喜啦的一道面试题,你知道什么是依赖注入吗? 依赖注入(DI)的概念虽然听起来很深奥,但是如果你用过一些新兴的 ...

  2. guice依赖注入原理_Google Guice依赖注入示例教程

    guice依赖注入原理 Google Guice is the framework to automate the dependency injection in applications. If y ...

  3. spring依赖注入原理详解(转载)

    spring依赖注入原理详解----转载 所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到组件中.当spring容器启动后,spring容器初始化,创建并管理bean对象,以及销毁它.所 ...

  4. PHP控制反转和依赖注入的理解(通俗易懂)

    目录 1.IoC是什么 2.IoC能做什么 3.IoC和DI 4.IoC(控制反转) 5.DI(依赖注入) 6.我对IoC(控制反转)和DI(依赖注入)的理解 学习PHP各个框架的过程中,都会听过Io ...

  5. Java程序员进阶——Spring依赖注入原理分析

    Spring依赖注入原理分析 下面谈谈Spring是如何实现反转模式IOC或依赖注入模式DI: 平时,我们需要生成一个对象,使用new语法,如一个类为A public class A{public v ...

  6. spring依赖注入原理(转载)

    关于spring依赖注入原理的文章在网络上已经有很多,我要写的这篇文章原文出自http://taeky.iteye.com/blog/563450,只所以再一次写下来只是为了一为自己收藏,方便以后的复 ...

  7. 依赖注入原理(为什么需要依赖注入)

    0. 前言 在软件工程领域,依赖注入(Dependency Injection)是用于实现控制反转(Inversion of Control)的最常见的方式之一.本文主要介绍依赖注入原理和常见的实现方 ...

  8. spring源码分析第三天------spring核心IOC容器和依赖注入原理

    基于XML的依赖注入 1.依赖注入发生的时间 当 Spring IOC 容器完成了 Bean 定义资源的定位.载入和解析注册以后,IOC 容器中已经管理类 Bean 定义的相关数据,但是此时 IOC ...

  9. spring依赖注入原理详解

    所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到组件中.当spring容器启动后,spring容器初始化,创建并管理bean对象,以及销毁它.所以我们只需从容器直接获取Bean对象就行, ...

最新文章

  1. TensorRT Samples: MNIST(Plugin, add a custom layer)
  2. 几何画板画一个五边形内部的方法
  3. 关于使浏览器崩溃的代码尝试
  4. cout的输出格式初探2
  5. 2020年阴阳师服务器维护,2020阴阳师2月19日更新官方公告及内容汇总
  6. weblogic 建立websocket连接报404_基于 Serverless 与 Websocket 的聊天工具实现
  7. 使用 jQuery.Pin 垂直滚动时固定导航
  8. Asp.net Ajax,Jquery,ExtJs 三种Ajax技术框架比较
  9. 电脑固态硬盘接口辨析
  10. graphviz安装以及入门
  11. 远程服务异常处理的实践之一:客户端
  12. BIP学习第一课,创建一个应用和实体并设计页面(图文)
  13. ps系列 -- 给人物添加光影
  14. 张柏芝、谢霆锋、陈冠希近半年行踪关系图,这个图很厉害,可以作为思维导图的工具...
  15. 第四章 脑功能磁共振成像
  16. FMEA和HAZOP在煤气柜风险分析综合应用
  17. awgn信道中的噪声功率谱密度_Ruminate: 噪声的功率谱密度与方差
  18. Excel表格中排名函数
  19. GoogleMap的基本使用
  20. Spring-Messaging远程代码执行漏洞复现(CVE-2018-1270)

热门文章

  1. 计算机应用需要数学成绩好吗,数学不好的同学,建议不要报考这三个专业,挂科率高,不好毕业...
  2. 推荐一个技术圈子,Java技能提升就靠它了
  3. 中国城市地区经纬度表
  4. 图数据库初探——3. 从一个示例查看neo4j的图数据库
  5. Linux容器技术进化史
  6. 给ImageView 添加阴影的两种方式
  7. php decimal类型,decimal是什么类型
  8. dubbo配置参考手册,dubbo各个标签解析
  9. 360、QQ置网民于何处??
  10. mysql数据库开启ssl_MySQL 5.7.x开启SSL连接