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  }