framework

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Apr 13, 2023 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BdjContainer added in v1.1.0

type BdjContainer struct {
	// 强制要求 BdjContainer 实现 Container 接口
	Container
	// contains filtered or unexported fields
}

func NewBdjContainer added in v1.1.0

func NewBdjContainer() *BdjContainer

func (*BdjContainer) Bind added in v1.1.0

func (b *BdjContainer) Bind(provider ServiceProvider) error

func (*BdjContainer) IsBind added in v1.1.0

func (b *BdjContainer) IsBind(key string) bool

func (*BdjContainer) Make added in v1.1.0

func (b *BdjContainer) Make(key string) (interface{}, error)

Make 调用 make 实例化服务

func (*BdjContainer) MakeNew added in v1.1.0

func (b *BdjContainer) MakeNew(key string, params []interface{}) (interface{}, error)

MakeNew 调用 make 强制重新实例化服务

func (*BdjContainer) MustMake added in v1.1.0

func (b *BdjContainer) MustMake(key string) interface{}

MustMake 调用 make 实例化服务,有错误会 panic

type Container added in v1.1.0

type Container interface {
	// Bind 绑定一个服务提供者,如果关键字凭证已经存在,会替换,不返回 error。
	Bind(provider ServiceProvider) error

	// IsBind 关键字凭证是否已经绑定服务提供者。
	IsBind(key string) bool

	// Make 根据关键字凭证获取一个服务。
	Make(key string) (interface{}, error)

	// MakeNew 根据关键字凭证和参数获取一个新的服务。
	MakeNew(key string, params []interface{}) (interface{}, error)

	// MustMake 根据关键字凭证获取一个服务。
	// 如果关键字凭证未绑定服务提供者,会 panic。
	// 所以在使用本接口时,要保证服务容器已经为这个关键字凭证绑定了服务提供者。
	MustMake(key string) interface{}
}

type NewInstance added in v1.1.0

type NewInstance func(...interface{}) (interface{}, error)

type ServiceProvider added in v1.1.0

type ServiceProvider interface {
	// Name 获取服务凭证
	Name() string

	// Register 服务实例化
	Register(Container) NewInstance

	// Params 获取服务实例化的参数
	Params(Container) []interface{}

	// IsDefer 控制服务实例化的时机
	// false 表示不延迟实例化(在注册的时候就实例化)
	// true 表示延迟实例化(在获取服务的时候实例化)
	IsDefer() bool

	// Boot 服务实例化的时候会调用,做一些准备工作
	// 如果 Boot 返回 error,服务实例化就会失败,返回错误
	Boot(Container) error
}

ServiceProvider 服务提供者需要实现的接口

Directories

Path Synopsis
gin
Package gin implements a HTTP web framework called gin.
Package gin implements a HTTP web framework called gin.

Jump to

Keyboard shortcuts

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