对laravel5概念的理解 -- 门面模式(Facade)

前言:


第一次写技术类博客,因为比较懒,至于作为一个懒人为何会写博客,因为记性比较差,常常当初灵光一闪理解的概念最后会忘记。所以还是用文字记录下来,以备自己后查,有缘人看到也可以做个参考,不同意见欢迎指正。不过主要问题是,我表达能力不好,有缘人还得看得懂,恩,必须是有缘人中的有缘人。
为什么写laravel呢,这框架真心牛逼,组件化的优势不提,我主要是用它来学习下PHP设计模式的应用。
OK.废话很多,总算说完了,进入正题。


门面模式


理解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绑定了谁。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值