Laravel Facades

Facades为应用程序服务容器中可用的类提供 静态 接口。Laravel 外墙 作为 静态代理 在服务容器底层类,提供了一个简洁,传神语法的利益,同时保持比传统的静态方法更可测试性和灵活性。

如何创建Facade

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

  • 第1步 - 创建PHP类文件。
  • 第2步 - 将该类绑定到服务提供者。
  • 第3步 - 将该ServiceProvider注册到

Config \ app.php作为提供者。

  • 第4步 - 创建此类延伸到的类

lluminate的\ Support \外立面\门面。

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

门面类参考

Laravel附带许多外墙。下表显示了内置的Facade类参考 -

正面 服务容器绑定
应用 照亮\基金会\应用 应用
工匠 照亮\合同\控制台\内核 工匠
验证 照亮\验证\ AuthManager AUTH
身份验证(实例) 照亮\验证\卫队  
照亮\查看\编译\ BladeCompiler blade.compiler
总线 照亮\ \合同公交\调度  
高速缓存 照亮\缓存\库 高速缓存
配置 照亮\ CONFIG \库 配置
曲奇饼 照亮\饼干\ CookieJar 曲奇饼
地穴 照亮\加密\加密器 加密
D B 照亮\数据库\的DatabaseManager D b
DB(实例) 照亮\数据库\连接  
事件 照亮\活动\调度 事件
文件 照亮\文件系统\文件系统
照亮\合同\身份验证\访问\门  
哈希 照亮\合同\散列\散列器 哈希
输入 照亮\ HTTP \请求 请求
照亮\翻译\翻译 翻译者
日志 照亮\登录\作家 日志
邮件 照亮\邮件\梅勒 信封
密码 照亮\验证\密码\ PasswordBroker auth.password
队列 照亮\队列\的QueueManager 队列
队列(实例) 照亮\队列\ QueueInterface  
队列(基类) 照亮\队列\队列  
重定向 照明\路由\重定向 重定向
Redis的 照亮\ Redis的\数据库 Redis的
请求 照亮\ HTTP \请求 请求
响应 照亮\合同\路由\ ResponseFactory  
路线 照明\路由\路由器 路由器
架构 照亮\数据库\架构\蓝图  
会议 照亮\会议\ SessionManager 会议
会话(实例) 照亮\会议\商店  
存储 照亮\合同\文件系统\厂 文件系统
网址 照明\路由\ UrlGenerator 网址
验证器 照亮\验证\厂 验证器
验证器(实例) 照亮\验证\验证  
视图 照亮\查看\厂 视图
查看(实例) 照亮\查看\查看  

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

php artisan make:provider TestFacadesServiceProvider

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

FacadesServiceProvider

第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类。 **

应用/测试/幕墙/ 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中 添加一个服务提供者,如下图所示。

配置/ app.php

服务提供者

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

配置/ app.php

别号

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

应用程序/ HTTP / routes.php文件

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

第9步 - 访问以下URL以测试Facade。

http://localhost:8000/facadeex

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

测试门面

下一章:Laravel 契约

Laravel契约是一套由框架提供的各种功能和核心服务的接口。例如, Illuminate \ Contracts \ Queue \ Queue 合同使用排队作业所需的方法, Illuminate \Contract ...