Skip to content

go-packagist/container

Repository files navigation

Container

Go Version GoDoc codecov Go Report Card tests MIT license

Installation

go get github.com/go-packagist/container

Usage

package main

import "github.com/go-packagist/container"

func main() {
	c := container.NewContainer()

	c.Instance("aa", "aaa")
	c.Bind("bb", func(c *container.Container) interface{} {
		return "bbb"
	}, false)
	c.Singleton("cc", func(c *container.Container) interface{} {
		return "ccc"
	})
	c.Singleton("dd", func(c *container.Container) interface{} {
		return func(hello string) string {
			return "hello " + hello
		}
	})

	var aa, bb, cc string
	c.Make("aa", &aa)
	c.Make("bb", &bb)
	c.Make("cc", &cc)
	println(aa, bb, cc) // aaa bbb ccc

	var dd func(name string) string
	c.Make("dd", &dd)
	println(dd("world")) // hello world
}

License

The MIT License (MIT). Please see License File for more information.

About

[Draft] Go Packagist Container Component

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages