• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    laravel框架中你所用到的依赖注入详解

    前言

    用Laravel开发前前后后有2个月左右了,之前一直写Java,就像找到Java和PHP之前的共同点,用Java的某些原理去理解PHP会发现还是有很多共通之处的。Java的依赖注入已经是一个很常见的概念了,Spring框架主要就是解决了这一点,在PHP的laravel框架中,也出现了依赖注入的方式。

    依赖注入就控制反转的一种是实现方式,面向对象的特征的重要体现,那么依赖注入中什么是依赖呢,这点用Java开发的人很多都能理解。笼统的说依赖就是一种联系,变量和实现的联系。有关于依赖注入的理解之前写过,传送门:https://www.jb51.net/article/143573.htm

    接下来说说Laravel中的依赖注入。

    之前就听说Laravel的特点中依赖注入就是其中之一,一直在寻找依赖注入和Spring的感觉。

    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()
     {
     35 }
    
     public function register()
     {
     //
     }
    }

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

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

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

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

    您可能感兴趣的文章:
    • php+laravel依赖注入知识点总结
    • 通过源码解析Laravel的依赖注入
    • Laravel实现构造函数自动依赖注入的方法
    • PHP依赖注入容器知识点浅析
    • php依赖注入知识点详解
    • php中的依赖注入实例详解
    • php反射学习之依赖注入示例
    • PHP依赖注入原理与用法分析
    • 详解Laravel框架的依赖注入功能
    上一篇:Laravel中表单size验证数字示例详解
    下一篇:Laravel5.5 支付宝手机网站支付的教程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

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