Laravel中使用的门面是什么?

问题描述 投票:5回答:3

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

Laravel documentation状态:

外观为应用程序的service container中提供的类提供了“静态”接口。 Laravel附带了许多外墙,可以访问Laravel的几乎所有功能。 Laravel外观作为服务容器中基础类的“静态代理”,提供了简洁,表达性强的语法的优点,同时保持了比传统静态方法更高的可测试性和灵活性。

请帮助我了解:

  1. 为什么我们真正使用use Illuminate\Support\Facades
  2. 如何创建自定义外观?
php laravel-5 facade laravel-facade
3个回答
8
投票

感谢sitepoint分享了有关FACADE(Laravel中的FACADE)的此类信息和有用的知识

FACADE:-Facade模式是一种软件设计模式,通常用于面向对象的编程中。实际上,外观是包装复杂库的类,以为其提供更简单和更易读的接口。

Facade pattern

Laravel中的外观:-外观为应用程序的服务容器中可用的类提供“静态”接口。 Laravel附带了许多外墙,可以访问Laravel的几乎所有功能。 Laravel外观作为服务容器中基础类的“静态代理”,提供了简洁,表达性强的语法的优点,同时保持了比传统静态方法更高的可测试性和灵活性。

如何在Laravel中实现外墙

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

<?php

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

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


4
投票

您可以通过此示例理解

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

在此示例中,DB是外观。它正在DB Facade上调用table()静态方法。


3
投票

一般而言,立面(发音为/ fəˈsɑːd /)是建筑物或任何事物的外部和正面。外墙的重要性在于它们易于发现且更加突出,类似地,laravel中也有外墙的概念。用于管理代码的可读性,并通过它构建易于记忆的函数和类的语法。

© www.soinside.com 2019 - 2024. All rights reserved.