zoukankan      html  css  js  c++  java
  • laravel php门面模式

    门面模式

     

    理解3个概念:

    1)Container的概念,laravel所有的服务都注册在container里面,至于如何注册,就是使用service provider

     

    2)service provider是用来绑定具体使用的服务,比如用MySQL数据库,还是Redis数据库,然后使用$this->app->bind进行绑定,以此实现松耦合,切换数据库比较方便。

     

    3)facade用来提供统一的接口,比如无论你用哪种cache,redis还是memcache,客户端都可以用cache::get()方式来获取value,至于具体是用了redis还是memcahe,就看你在sevice provider里面绑定了哪个。cache::get()的实现方式是,继承Facade方法getFacadeAccessor,返回你在容器中绑定的key值,比如cache,然后Facade类会使用php魔术变量__callstatic(),callstatic的逻辑里面会从container里解析cache所绑定的服务,就是前面提到的service provider绑定了谁。

    门面模式通过别名调用,返回容器中绑定的key,而这个key对应的是哪个服务,是通过service provider预先绑定好的。

  • 相关阅读:
    Java--分布式系统高并发解决方案
    Eclipse 快捷键
    Java--基础命名空间
    Java--发送邮件
    Java--垃圾收集算法及内存分配策略
    Java--Vector类
    第四篇 express 安装esasticsearch
    第三篇elasticsearch分布式安装
    第二篇elasticsearch配置
    elasticsearch介绍
  • 原文地址:https://www.cnblogs.com/dongruiha/p/6343477.html
Copyright © 2011-2022 走看看