go-service

Simple Dependency Injection Container for Golang

MIT License

Stars
8

Go Service Container Last release Documentation

Branch Status Coverage
master Build Status Coveralls

Simple Dependency Injection Container for Golang

Example

package main

import (
    "fmt"
    "github.com/euskadi31/go-service"
)

type MyService struct {
    name string
}

func (s *MyService) SetName(name string) {
    s.name = name
}

func (s *MyService) Name() string {
    return s.name
}

func main() {
    sc := service.New()

    // Define service
    sc.Set("my.service", func(c service.Container) interface{} {
        return &MyService{}
    })

    // Extend service
    sc.Extend("my.service", func(s *MyService) *MyService {
        s.SetName("My Service")

        return s
    })

    // Call service 
    myService := sc.Get("my.service").(*MyService)

    fmt.Printf("Service Name: %s", myService.Name())
}

License

go-service is licensed under the MIT license.

Package Rankings
Top 6.75% on Proxy.golang.org
Badges
Extracted from project README
Last release Documentation Go Report Card Build Status Coveralls