Facades
简介
Facades 提供了一个“静态”接口到 IoC 容器 类 。Laravel 含有很多 facades,你可能不知道你在某些地方已经使用过它们了。
有时候, 你可能想为你的应用程序或包创建自己的 facades, 所以,让我们来讨论一下如何开发和使用这些类。
在深入 facades 之前,我们强烈建议你多了解一下 Laravel Ioc 容器。
说明
在 Laravel 应用程序中, facade 是提供从容器中访问对象方法的类。Facade
类实现了该机制。
你的 facade 类只需要实现一个方法: getFacadeAccesor
。 getFacadeAccessor
方法的工作是定义如何从容器中取得对象。 Facades
基类构建了 __callStatic()
魔术方法来从 facade 延迟访问取得对象。
So, when you make a facade call like Cache::get
, Laravel resolves the Cache manager class out of the IoC container and calls the get
method on the class. In technical terms, Laravel Facades are a convenient syntax for using the Laravel IoC container as a service locator.
实际用例
在以下示例中,执行 Laravel 缓存系统, 查看该代码,我们可能会假定 get
静态方法是执行在 Cache
类。
In the example below, a call is made to the Laravel cache system. By glancing at this code, one might assume that the static method get
is being called on the Cache
class.
$value = Cache::get('key');