Facades
[[toc]]
介绍
facades 为应用的核心功能提供一个「静态」接口。Goravel 自带了很多 facades,可以使用大部分功能,在使用时能够提供更加灵活、更加优雅、易于测试的语法。
Goravel 所有的 facades 都定义在 github.com/goravel/framework/support/facades 下。我们可以很轻松的使用 facades:
import "github.com/goravel/framework/support/facades"facades.Route.Run(facades.Config.GetString("app.host"))
facades 工作原理
facades 一般会在 ServerProvider 的 Register 或 Boot 阶段进行实例化,也可以直接进行赋值,具体根据使用场景不同灵活区分。
例如,你只是想用 facades 实例化一个对象,可以直接进行赋值:
var Artisan = &console.Application{}
如果该 facades 使用了其他 facades,那么就在 ServerProvider 的 Boot 阶段进行实例化:
func (database *ServiceProvider) Register() {app := Application{}facades.DB = app.Init()}
其他情况,可以在 ServerProvider 的 Register 阶段进行实例化:
func (config *ServiceProvider) Register() {app := Application{}facades.Config = app.Init()}
facade 类参考
| Facade | 作用 |
|---|---|
| Artisan | 命令行工具 |
| Config | 获取系统配置 |
| DB | ORM |
| Route | 路由 |
