github.com/goravel/framework@v1.13.9/database/service_provider.go (about) 1 package database 2 3 import ( 4 "context" 5 "fmt" 6 7 consolecontract "github.com/goravel/framework/contracts/console" 8 "github.com/goravel/framework/contracts/foundation" 9 "github.com/goravel/framework/database/console" 10 ) 11 12 const BindingOrm = "goravel.orm" 13 const BindingSeeder = "goravel.seeder" 14 15 type ServiceProvider struct { 16 } 17 18 func (database *ServiceProvider) Register(app foundation.Application) { 19 app.Singleton(BindingOrm, func(app foundation.Application) (any, error) { 20 config := app.MakeConfig() 21 defaultConnection := config.GetString("database.default") 22 23 orm, err := InitializeOrm(context.Background(), config, defaultConnection) 24 if err != nil { 25 return nil, fmt.Errorf("[Orm] Init %s connection error: %v", defaultConnection, err) 26 } 27 28 return orm, nil 29 }) 30 app.Singleton(BindingSeeder, func(app foundation.Application) (any, error) { 31 return NewSeederFacade(), nil 32 }) 33 } 34 35 func (database *ServiceProvider) Boot(app foundation.Application) { 36 database.registerCommands(app) 37 } 38 39 func (database *ServiceProvider) registerCommands(app foundation.Application) { 40 config := app.MakeConfig() 41 seeder := app.MakeSeeder() 42 artisan := app.MakeArtisan() 43 app.MakeArtisan().Register([]consolecontract.Command{ 44 console.NewMigrateMakeCommand(config), 45 console.NewMigrateCommand(config), 46 console.NewMigrateRollbackCommand(config), 47 console.NewMigrateResetCommand(config), 48 console.NewMigrateRefreshCommand(config, artisan), 49 console.NewMigrateFreshCommand(config, artisan), 50 console.NewMigrateStatusCommand(config), 51 console.NewModelMakeCommand(), 52 console.NewObserverMakeCommand(), 53 console.NewSeedCommand(config, seeder), 54 console.NewSeederMakeCommand(), 55 console.NewFactoryMakeCommand(), 56 }) 57 }