dig

package module
v0.0.8 Latest Latest
Warning

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

Go to latest
Published: May 11, 2026 License: MIT Imports: 5 Imported by: 0

README ΒΆ

Compogo Dig 🧩

Compogo Dig β€” это готовая интСграция uber-go/dig с Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ Compogo. ДобавляСтся ΠΎΠ΄Π½ΠΎΠΉ строкой ΠΈ автоматичСски рСгистрируСт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π² DI, дСлая Π΅Π³ΠΎ доступным для всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

πŸš€ Установка

go get github.com/Compogo/dig

πŸ“¦ ИспользованиС

package main

import (
    "github.com/Compogo/compogo"
    "github.com/Compogo/dig"
    "github.com/Compogo/logrus"
    "github.com/Compogo/myapp/service"
)

func main() {
    app := compogo.NewApp("myapp",
        compogo.WithOsSignalCloser(),
        dig.WithDig(),                          // ← ΠΎΠ΄Π½Π° строка
        logrus.WithLogrus(),
        compogo.WithComponents(
            service.Component,
        ),
    )

    if err := app.Serve(); err != nil {
        panic(err)
    }
}

✨ ВозмоТности

πŸ”§ Π’Ρ€ΠΈ способа ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€

Π’ любом ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ:

// 1. Как интСрфСйс container.Container
type Service struct {
    container container.Container
}

// 2. Как *dig.Decorator (с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Provide/Provides/Invoke)
type Service struct {
    dig *dig.Decorator
}

// 3. Как чистый *dig.Container
type Service struct {
    rawDig *uberDig.Container
}
πŸ“¦ ΠŸΠ°ΠΊΠ΅Ρ‚Π½Π°Ρ рСгистрация
container.Provides(
    NewConfig,
    NewService,
    NewRepository,
) // Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΎΡˆΠΈΠ±ΠΊΡƒ со всСми ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ

πŸ§ͺ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€

var ServiceComponent = &component.Component{
    Init: component.StepFunc(func(c container.Container) error {
        return c.Provides(
            NewService,
            func() *Repository { return NewRepository() },
        )
    }),
    Run: component.StepFunc(func(c container.Container) error {
        return c.Invoke(func(s *Service) {
            s.Start()
        })
    }),
}

Documentation ΒΆ

Index ΒΆ

Constants ΒΆ

This section is empty.

Variables ΒΆ

This section is empty.

Functions ΒΆ

func WithDig ΒΆ

func WithDig() compogo.Option

Types ΒΆ

type Container ΒΆ added in v0.0.7

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

func NewContainer ΒΆ added in v0.0.7

func NewContainer(dig *dig.Container) *Container

func (*Container) Invoke ΒΆ added in v0.0.7

func (container *Container) Invoke(function any) error

func (*Container) Provide ΒΆ added in v0.0.7

func (container *Container) Provide(constructor interface{}) error

func (*Container) Provides ΒΆ added in v0.0.7

func (container *Container) Provides(constructors ...interface{}) error

Jump to

Keyboard shortcuts

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