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 ...