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
namespace app\test; class testfacades{ public function testingfacades(){ echo "testing the facades in laravel."; } }
第4步 - 在 “app / test / facades” 创建一个名为 “testfacades.php” 的facade类。 **
应用/测试/幕墙/ testfacades.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
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后,您将收到以下输出 -