Documentation
¶
Overview ¶
Package provider implements a service-provider registry for extending the application with pluggable, configurable components.
Providers are registered globally, sorted by priority, then configured, registered, and booted in two passes when loaded into an application. Providers may opt into configuration, custom priority, or optional booting.
Index ¶
- func RegisterGlobalProvider(provider ServiceProvider)
- type ConfigurableProvider
- type OptionalProvider
- type PriorityProvider
- type Provider
- func (p *Provider) GetProviderConfig(name string) map[string]interface{}
- func (p *Provider) IsProviderEnabled(name string) bool
- func (p *Provider) LoadProviders(app interface{}) error
- func (p *Provider) SetProviderConfig(name string, config map[string]interface{})
- func (p *Provider) SetProviderEnabled(name string, enabled bool)
- type ServiceProvider
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterGlobalProvider ¶
func RegisterGlobalProvider(provider ServiceProvider)
RegisterGlobalProvider adds a provider to the global registry
Types ¶
type ConfigurableProvider ¶
type ConfigurableProvider interface {
ServiceProvider
Configure(config map[string]interface{}) error
}
ConfigurableProvider allows providers to accept configuration
type OptionalProvider ¶
type OptionalProvider interface {
ServiceProvider
IsOptional() bool
}
OptionalProvider allows providers to specify if they're optional
type PriorityProvider ¶
type PriorityProvider interface {
ServiceProvider
Priority() int
}
PriorityProvider allows providers to specify boot order
type Provider ¶
type Provider struct {
//App *adele.Adele
EnabledProviders map[string]bool
ProviderConfigs map[string]map[string]interface{}
}
Provider manages the loading and bootstrapping of service providers
func (*Provider) GetProviderConfig ¶
GetProviderConfig returns configuration for a specific provider
func (*Provider) IsProviderEnabled ¶
IsProviderEnabled checks if a provider is enabled in configuration
func (*Provider) LoadProviders ¶
LoadProviders discovers and loads all registered providers into the application
func (*Provider) SetProviderConfig ¶
SetProviderConfig sets configuration for a provider
func (*Provider) SetProviderEnabled ¶
SetProviderEnabled enables or disables a provider
type ServiceProvider ¶
type ServiceProvider interface {
Register(app interface{}) error
Boot(app interface{}) error
Name() string
}
ServiceProvider is the expected interface every provider must implement
func GetRegisteredProviders ¶
func GetRegisteredProviders() []ServiceProvider
GetRegisteredProviders returns a copy of all registered providers