Facades

[[toc]]

介绍

facades 为应用的核心功能提供一个「静态」接口。Goravel 自带了很多 facades,可以使用大部分功能,在使用时能够提供更加灵活、更加优雅、易于测试的语法。

Goravel 所有的 facades 都定义在 github.com/goravel/framework/support/facades 下。我们可以很轻松的使用 facades

  1. import "github.com/goravel/framework/support/facades"
  2. facades.Route.Run(facades.Config.GetString("app.host"))

facades 工作原理

facades 一般会在 ServerProviderRegisterBoot 阶段进行实例化,也可以直接进行赋值,具体根据使用场景不同灵活区分。

例如,你只是想用 facades 实例化一个对象,可以直接进行赋值:

  1. var Artisan = &console.Application{}

如果该 facades 使用了其他 facades,那么就在 ServerProviderBoot 阶段进行实例化:

  1. func (database *ServiceProvider) Register() {
  2. app := Application{}
  3. facades.DB = app.Init()
  4. }

其他情况,可以在 ServerProviderRegister 阶段进行实例化:

  1. func (config *ServiceProvider) Register() {
  2. app := Application{}
  3. facades.Config = app.Init()
  4. }

facade 类参考

Facade 作用
Artisan 命令行工具
Config 获取系统配置
DB ORM
Route 路由