我对Laravel提供的外观感到困惑。
Laravel documentation声明:
Facade为应用程序的service container中可用的类提供了一个“静态”接口。Laravel随附了许多Facade,这些Facade提供了对Laravel几乎所有特性的访问。Laravel Facade作为服务容器中底层类的“静态代理”,提供了简洁、表达性语法的好处,同时保持了比传统静态方法更多的可测试性和灵活性。
请帮助我理解:
1.我们为什么要使用use Illuminate\Support\Facades
?
1.如何创建自定义立面?
3条答案
按热度按时间n6lpvg4x1#
支持SitePoint分享关于Laravel立面的信息丰富和有用的知识。
facade模式是一种软件设计模式,常用于面向对象编程。
Facade是一个类,它 Package 了一个复杂的库,为它提供了一个更简单、更可读的接口。
拉拉维尔的门面
Facade为应用程序的服务容器中可用的类提供了一个“静态”接口。Laravel随附了许多Facade,这些Facade提供了对Laravel几乎所有特性的访问。Laravel Facade作为服务容器中底层类的“静态代理”,提供了简洁、表达性语法的好处,同时保持了比传统静态方法更多的可测试性和灵活性。
如何在Laravel实施立面
容器中的每个服务都有一个唯一的名称,在Laravel应用程序中,要直接从容器访问服务,我们可以使用
App::make()
方法或app()helper函数。在Laravel中,所有服务都有一个facade类。这些facade类扩展了
Illuminate/Support
包中的基本Facade类。它们唯一需要实现的是getFacadeAccessor方法,该方法返回容器中的服务名称。yhxst69z2#
一般来说,立面(发音为/fəˈs ːd/)是建筑物或任何东西的外部和正面。立面的重要性在于它们容易被注意到并且更加突出,类似地,在laravel中也有立面的概念。它用于管理我们的代码可读性,并通过它构建易于记忆的函数和类的语法。
Laravel facade是一个类,它为服务容器中的服务提供了一个类似静态的接口。它们充当了访问laravel服务的底层实现的代理。例如,在
web.php
文件中编写以下代码上面的例子是使用非静态的方式来调用缓存的方法,现在让我们看看如何使用缓存外观。
你不觉得上面的例子更优雅,语法更容易记忆吗?这就是门面的美。
zhte4eai3#
通过这个例子你可以理解
在本例中,
DB
是facade。它调用DB facade上的table()
静态方法。