github.com/goravel/framework@v1.13.9/http/service_provider.go (about) 1 package http 2 3 import ( 4 "github.com/goravel/framework/contracts/cache" 5 "github.com/goravel/framework/contracts/config" 6 consolecontract "github.com/goravel/framework/contracts/console" 7 "github.com/goravel/framework/contracts/foundation" 8 "github.com/goravel/framework/contracts/http" 9 "github.com/goravel/framework/http/console" 10 ) 11 12 const BindingRateLimiter = "goravel.rate_limiter" 13 const BindingView = "goravel.view" 14 15 type ServiceProvider struct{} 16 17 var ( 18 CacheFacade cache.Cache 19 ConfigFacade config.Config 20 RateLimiterFacade http.RateLimiter 21 ) 22 23 func (http *ServiceProvider) Register(app foundation.Application) { 24 app.Singleton(BindingRateLimiter, func(app foundation.Application) (any, error) { 25 return NewRateLimiter(), nil 26 }) 27 app.Singleton(BindingView, func(app foundation.Application) (any, error) { 28 return NewView(), nil 29 }) 30 } 31 32 func (http *ServiceProvider) Boot(app foundation.Application) { 33 CacheFacade = app.MakeCache() 34 ConfigFacade = app.MakeConfig() 35 RateLimiterFacade = app.MakeRateLimiter() 36 37 http.registerCommands(app) 38 } 39 40 func (http *ServiceProvider) registerCommands(app foundation.Application) { 41 app.MakeArtisan().Register([]consolecontract.Command{ 42 &console.RequestMakeCommand{}, 43 &console.ControllerMakeCommand{}, 44 &console.MiddlewareMakeCommand{}, 45 }) 46 }