dig

package module
v0.0.6 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 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 Decorator ΒΆ

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

func NewDecorator ΒΆ

func NewDecorator(dig *dig.Container) *Decorator

func (*Decorator) Invoke ΒΆ

func (container *Decorator) Invoke(function interface{}) error

func (*Decorator) Provide ΒΆ

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

func (*Decorator) Provides ΒΆ

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

Jump to

Keyboard shortcuts

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