Facades
简介
Facades 提供一个静态接口给在应用程序的 服务容器 中可以取用的类。Laravel 附带许多 facades,甚至你可能已经在不知情的状况下使用过它们!Laravel 的「facades」作为在 IoC 容器里面的基础类的静态代理,提供的语法有简洁、易表达的优点,同时维持比传统的静态方法更高的可测试性和弹性。
有时,你或许会希望为应用程序和扩展包建立自己的 facades,所以让我们来探索这些类的概念、开发和用法。
注意: 在深入了解 facades 之前,强烈建议你先熟悉 Laravel 服务容器.
解释
在 Laravel 应用程序的环境中,facade 是个提供从容器访问对象的类。Facade 类是让这个机制可以运作的原因。Laravel 的 facades 和你建立的任何自定义 facades,将会继承基本的 Facade 类。
你的 facade 类只需要去实现一个方法:getFacadeAccessor。getFacadeAccessor 方法的工作是定义要从容器解析什么。基本的 Facade 类利用 __callStatic() 魔术方法来从你的 facade 调用到解析出来的对象。
所以当你对 facade 调用,例如 Cache::get,Laravel 从服务容器解析缓存管理类出来,并对该类调用 get 方法。用专业口吻来说,Laravel Facades 是使用 Laravel 服务容器作为服务定位器的便捷语法。
更多建议: