拉拉维尔使用的外墙是什么?

2022-08-31 00:42:31

我对Laravel提供的立面感到困惑。

Laravel文档指出:

外观为应用程序服务容器中可用的类提供“静态”接口。Laravel的船具有许多立面,可以访问Laravel的几乎所有功能。Laravel 外观充当服务容器中基础类的“静态代理”,提供简洁、富有表现力的语法优势,同时保持比传统静态方法更多的可测试性和灵活性。

请帮我了解:

  1. 我们为什么真正使用?use Illuminate\Support\Facades
  2. 如何创建自定义立面?

答案 1

道具到SitePoint分享有关Laravel外墙的信息丰富且有用的知识。

外观模式是一种软件设计模式,通常用于面向对象编程。

外观是包装复杂库的类,用于为其提供更简单、更易读的接口。

Facade pattern

拉拉维尔的外墙

外观为应用程序服务容器中可用的类提供“静态”接口。Laravel的船具有许多立面,可以访问Laravel的几乎所有功能。Laravel 外观充当服务容器中基础类的“静态代理”,提供简洁、富有表现力的语法优势,同时保持比传统静态方法更多的可测试性和灵活性。

立面在拉拉维尔的实施方式

容器内的每个服务都有一个唯一的名称。在 Laravel 应用程序中,要直接从容器访问服务,我们可以使用方法或 app() 帮助程序函数。App::make()

<?php

App::make('some_service')->methodName();

在Laravel,所有服务都有一个立面类。这些立面类扩展了作为包一部分的基本立面类。他们唯一需要实现的是getFacadeAccessor方法,该方法返回容器内的服务名称。Illuminate/Support


答案 2

您可以通过此示例来理解

DB::table('table_name')->get();  

在此示例中,是外观。它在数据库外观上调用静态方法。DBtable()


推荐