$this->app->bind('Interface', 'Class'); типа такого
fx.Provide( fx.Annotate( NewHTTPClient, fx.As(new(HTTPClientInterface)), ) )
придется читать спеки фыхы🥲
а чем это отличается от условного type App struct { db DBInterface api APIInterface } func NewApp(db DBinterface, api APIInterface) *App { return &App{db: db, api: api} } ?
И что это семантически значит-то?
Что можно в качестве типа в конструкторе указать Interface, а вместо него контейнер подсунет класс. Естественно, они должны сходиться.
забиндить интерфейс к классу, и если у нас в конструкторе будет интерфейс, его сунет туда, а потом по интерфейсу я смогу мокать
а поддерживать такой код каково? 😁
ну на пыне нормально оно
Странное утверждение в контексте типичного write once языка
Обсуждают сегодня