di

package
v0.0.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 18, 2024 License: MIT Imports: 4 Imported by: 15

Documentation

Index

Constants

View Source
const ErrServiceNotExistsFormat = "service %s not exists"

Variables

View Source
var ErrNotSupportedType = fmt.Errorf("unsupported type")
View Source
var ErrServiceSingleton = errors.New("service is singleton, cannot use it with GetWithParams")

Functions

func Bound added in v0.0.6

func Bound(serviceAny any) bool

func Exists

func Exists(serviceAny any) bool

func Get

func Get(serviceAny any) (any, error)

func GetFullName added in v0.0.6

func GetFullName(p reflect.Type) string

func GetWithParams

func GetWithParams(serviceName string, params ...any) (any, error)

func InjectOn added in v0.0.6

func InjectOn(ptr any)

InjectOn 作用, 解析object对象内可识别的字段自动注入, 引用服务非数据安全, 需要自行管理 object 需要被注入的对象, 仅注入为nil的属性字段

func IsShare added in v0.0.6

func IsShare(serviceAny any) bool

func List

func List() []string

func MustGet

func MustGet(serviceAny any, params ...any) any

func Register added in v0.0.6

func Register(providers ...AbstractServiceProvider)

func Remove added in v0.0.6

func Remove(serviceAny any)

func ResolveServiceName

func ResolveServiceName(service any) string

Types

type AbstractBuilder

type AbstractBuilder interface {
	Bind(any, BuildHandler) *Definition
	Singleton(any, BuildHandler) *Definition
	Instance(any, ...any) *Definition
	Register(...AbstractServiceProvider)

	Set(any, BuildHandler, bool) *Definition
	SetWithParams(any, BuildWithHandler) *Definition
	Add(*Definition)
	Get(any) (any, error)
	GetWithParams(any, ...any) (any, error)
	MustGet(any, ...any) any
	GetDefinition(any) (*Definition, error)
	Exists(any) bool
}

func GetDefaultDI added in v0.0.6

func GetDefaultDI() AbstractBuilder

type AbstractServiceProvider added in v0.0.6

type AbstractServiceProvider interface {
	Register(AbstractBuilder)
}

type BuildHandler

type BuildHandler func(builder AbstractBuilder) (any, error)

type BuildWithHandler

type BuildWithHandler func(builder AbstractBuilder, params ...any) (any, error)

type Definition

type Definition struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func Attempt added in v0.0.6

func Attempt(serviceAny any, handler BuildHandler, singleton bool) *Definition

func Bind added in v0.0.6

func Bind(serviceAny any, handler BuildHandler) *Definition

func Instance added in v0.0.6

func Instance(serviceAny any, instance ...any) *Definition

func NewDefinition

func NewDefinition(name string, factory BuildHandler, shared bool) *Definition

func NewParamsDefinition

func NewParamsDefinition(name string, factory BuildWithHandler) *Definition

func Set

func Set(serviceAny any, handler BuildHandler, singleton bool) *Definition

func SetWithParams

func SetWithParams(serviceAny any, handler BuildWithHandler) *Definition

func (*Definition) IsResolved

func (d *Definition) IsResolved() bool

func (*Definition) IsSingleton

func (d *Definition) IsSingleton() bool

func (*Definition) ServiceName

func (d *Definition) ServiceName() string

func (*Definition) SetShared

func (d *Definition) SetShared(shared bool)

func (*Definition) SetTypeName

func (d *Definition) SetTypeName(call func() string)

func (*Definition) TypeName

func (d *Definition) TypeName() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL