framework

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: May 6, 2023 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AnanContainer

type AnanContainer struct {
	Container
	// contains filtered or unexported fields
}

func NewAnanContainer

func NewAnanContainer() *AnanContainer

func (*AnanContainer) Bind

func (container *AnanContainer) Bind(provider ServiceProvider) error

func (*AnanContainer) IsBind

func (container *AnanContainer) IsBind(key string) bool

func (*AnanContainer) Make

func (container *AnanContainer) Make(key string) (interface{}, error)

func (*AnanContainer) MakeNew

func (container *AnanContainer) MakeNew(key string, params []interface{}) (interface{}, error)

func (*AnanContainer) MustMake

func (container *AnanContainer) MustMake(key string) interface{}

func (*AnanContainer) NameList

func (container *AnanContainer) NameList() []string

返回所有服务的名字

func (*AnanContainer) PrintProviders

func (container *AnanContainer) PrintProviders() []string

PrintProviders 输出服务容器中注册的关键字

type Container

type Container interface {
	// 绑定一个服务提供者 如果凭证已经存在则替换
	Bind(provider ServiceProvider) error

	// 凭证是否已经绑定
	IsBind(key string) bool

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

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

	// MakeNew 根据关键字凭证获取一个服务,只是这个服务并不是单例模式的
	// 它是根据服务提供者注册的启动函数和传递的params参数实例化出来的
	// 这个函数在需要为不同参数启动不同实例的时候非常有用
	MakeNew(key string, params []interface{}) (interface{}, error)
}

type NewInstance

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

type ServiceProvider

type ServiceProvider interface {
	//在服务容器中测试一个 实例化服务的方法
	//是否在注册的时候就实例化 要根据IsDefer方法来判断
	Register(Container) NewInstance

	// 在调用实例化服务之前调用
	Boot(Container) error

	//是否在注册时候实例化服务
	IsDefer() bool

	// 传递给NewInstance的参数
	Params(Container) []interface{}

	// 代表这个服务提供者的凭证
	Name() string
}

服务提供者接口

Directories

Path Synopsis
doc
gin
Package gin implements a HTTP web framework called gin.
Package gin implements a HTTP web framework called gin.
provider
app
env
log
orm

Jump to

Keyboard shortcuts

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