美文网首页
[ Laravel 5.3 文档 ] 核心概念 —— 门面(Fa

[ Laravel 5.3 文档 ] 核心概念 —— 门面(Fa

作者: 穷的只剩下代码 | 来源:发表于2016-10-25 15:36 被阅读0次

    1. 简介

    门面为服务器容器提供了“静态接口”,La的门面(facades)作为服务器容器中的底层类的“静态代理”,相比如传统的静态方法啊,在维护中更容易测试更灵活。La的所有门面都定义在 Illuminate\Support\Facades命名空间下。

    2. 什么时候使用门面

    1. 最危险的就是类范围蠕变 ,注意控制类的大小。
    2. 在构建与La交互的第三方扩展包时,最好注入的是契约而不是门面,因为扩展包在La以外构建,你不能通过访问La门面测试辅助函数

    3. 门面的原理

    门面就是一个为容器中对象提供访问方式的类。所有的门面都继承了Illuminate\Support\Facades\Facade基类,门面类只需要实现一个方法: getDacadeAccessor,它定义了从容器中解析什么,然后Facade基类使用魔术方法——callStatiac()从你的门面中调用解析对象。我们对门面的所有调用都会被传递给 Laravel 缓存服务的底层实例。

    Cache门面继承Facade基类并定义了getFacadeAccessor方法,该方法的工作就是返回服务容器绑定类的别名,当用户引用Cache类的任何静态方法时,Laravel 从服务容器中解析cache绑定,然后在解析出的对象上调用所有请求方法

    调用门面静态方法-->根据getFacadeAccessor获取绑定解析-->调用解析对象的请求方法。代理静态

    相关文章

      网友评论

          本文标题:[ Laravel 5.3 文档 ] 核心概念 —— 门面(Fa

          本文链接:https://www.haomeiwen.com/subject/dtfkuttx.html