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步 - 成功执行后,您将收到以下输出 -

第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 ...
AI 中文社