Laravel - 外观


外观为应用程序服务容器中可用的类提供静态接口。Laravel外观充当服务容器中底层类的静态代理,提供简洁、富有表现力的语法的优点,同时保持比传统静态方法更高的可测试性和灵活性。

如何创建门面

以下是在 Laravel 中创建 Facade 的步骤 -

  • 步骤 1 - 创建 PHP 类文件。

  • 步骤 2 - 将该类绑定到服务提供者。

  • 步骤 3 - 将该服务提供商注册到

    Config\app.php 作为提供者。

  • 步骤 4 - 创建该类扩展至的类

    照亮\支持\立面\立面。

  • 步骤 5 - 将点 4 注册到 Config\app.php 作为别名。

外观类参考

Laravel 附带了许多 Facade。下表显示了内置的 Facade 类引用 -

正面 班级 服务容器绑定
应用程序 照明\基础\应用 应用程序
工匠 照亮\合同\控制台\内核 工匠
授权 照亮\Auth\AuthManager 授权
身份验证(实例) 照亮\验证\防护
刀刃 Illuminate\View\Compilers\BladeCompiler Blade.编译器
公共汽车 照亮\合同\巴士\调度员
缓存 照亮\缓存\存储库 缓存
配置 照亮\配置\存储库 配置
曲奇饼 照亮\Cookie\CookieJar 曲奇饼
地穴 照明\加密\加密器 加密器
D B 照亮\数据库\DatabaseManager D b
数据库(实例) 照亮\数据库\连接
事件 照亮\事件\调度程序 事件
文件 照亮\文件系统\文件系统 文件
照亮\合同\身份验证\访问\门
哈希值 Illuminate\Contracts\Hashing\Hasher 散列
输入 照亮\Http\请求 要求
照明\翻译\翻译器 翻译者
日志 照亮\日志\写入器 日志
邮件 照亮\邮件\邮件程序 邮寄者
密码 照亮\Auth\密码\PasswordBroker 授权密码
队列 照亮\队列\队列管理器 队列
队列(实例) 照亮\队列\队列接口
队列(基类) 照亮\队列\队列
重定向 照亮\路由\重定向器 重定向
雷迪斯 照亮\Redis\数据库 雷迪斯
要求 照亮\Http\请求 要求
回复 Illuminate\Contracts\Routing\ResponseFactory
路线 照亮\路由\路由器 路由器
模式 照亮\数据库\模式\蓝图
会议 照亮\会话\SessionManager 会议
会话(实例) 照亮\会话\存储
贮存 照亮\合同\文件系统\工厂 文件系统
网址 照亮\路由\UrlGenerator 网址
验证器 照明\验证\工厂 验证器
验证器(实例) 照明\验证\验证器
看法 照亮\视图\工厂 看法
视图(实例) 照明\视图\视图

例子

步骤 1 -通过执行以下命令创建一个名为TestFacadesServiceProvider 的服务提供者。

php artisan make:provider TestFacadesServiceProvider

步骤 2 - 成功执行后,您将收到以下输出 -

外墙服务提供商

步骤 3 -在App/Test中创建一个名为TestFacades.php的类。

应用程序/测试/TestFacades.php

<?php
   namespace App\Test;
   class TestFacades{
      public function testingFacades() {
         echo "Testing the Facades in Laravel.";
      }
   }
?>

步骤 4 -在“App/Test/Facades”创建一个名为“TestFacades.php”的 Facade 类。

应用程序/测试/Facades/TestFacades.php

<?php

namespace app\Test\Facades;

use Illuminate\Support\Facades\Facade;

class TestFacades extends Facade {
   protected static function getFacadeAccessor() { return 'test'; }
}

步骤 5 -在App/Test/Facades 中创建一个名为TestFacadesServiceProviders.php的 Facade 类

应用程序/提供商/TestFacadesServiceProviders.php

<?php

namespace App\Providers;

use App;
use Illuminate\Support\ServiceProvider;

class TestFacadesServiceProvider extends ServiceProvider {
   public function boot() {
      //
   }
   public function register() {
      App::bind('test',function() {
         return new \App\Test\TestFacades;
      });
   }
}

步骤 6 - 在文件config/app.php中添加服务提供者,如下图所示。

配置/应用程序.php

服务提供者

步骤 7 - 在文件config/app.php中添加别名,如下图所示。

配置/应用程序.php

别名

步骤 8 - 在app/Http/routes.php中添加以下行。

应用程序/Http/routes.php

Route::get('/facadeex', function() {
   return TestFacades::testingFacades();
});

步骤 9 - 访问以下 URL 来测试外观。

http://localhost:8000/facadeex

步骤 10 - 访问 URL 后,您将收到以下输出 -

测试外墙