我对Laravel提供的立面感到困惑。
外观为应用程序的service container中提供的类提供了“静态”接口。 Laravel附带了许多外墙,可以访问Laravel的几乎所有功能。 Laravel外观作为服务容器中基础类的“静态代理”,提供了简洁,表达性强的语法的优点,同时保持了比传统静态方法更高的可测试性和灵活性。
请帮助我了解:
use Illuminate\Support\Facades
?FACADE:-Facade模式是一种软件设计模式,通常用于面向对象的编程中。实际上,外观是包装复杂库的类,以为其提供更简单和更易读的接口。
Laravel中的外观:-外观为应用程序的服务容器中可用的类提供“静态”接口。 Laravel附带了许多外墙,可以访问Laravel的几乎所有功能。 Laravel外观作为服务容器中基础类的“静态代理”,提供了简洁,表达性强的语法的优点,同时保持了比传统静态方法更高的可测试性和灵活性。
如何在Laravel中实现外墙
您可能知道,容器内的每个服务都有一个唯一的名称。在Laravel应用程序中,要直接从容器访问服务,我们可以使用App::make()
方法或app()帮助器函数。
<?php
App::make('some_service')->methodName();
在Laravel中,所有服务都有一个Facade类。这些Facade类扩展了基础Facade类,该基础Facade类是Illuminate/Support
程序包的一部分。他们唯一需要实现的就是getFacadeAccessor方法,该方法返回容器内的服务名称。
您可以通过此示例理解
DB::table('table_name')->get();
在此示例中,DB
是外观。它正在DB Facade上调用table()
静态方法。
一般而言,立面(发音为/ fəˈsɑːd /)是建筑物或任何事物的外部和正面。外墙的重要性在于它们易于发现且更加突出,类似地,laravel中也有外墙的概念。用于管理代码的可读性,并通过它构建易于记忆的函数和类的语法。