12.7 Зависимости
provide Db = Db.open(App.get().dbUrl) for role api, saga
provide Payments = PaymentsClient.new(App.get().stripeKey)
impl Orders { dep db: Db; dep pay: Payments }provide Тип = выражение (for role r, …)?— фабрика зависимости, выполняется один раз на узле при запуске (шаг 4 §2.4) для указанных ролей (по умолчанию — для всех).dep имя: Типдопустим вimplсервиса, акторе, пайплайне, саге и на уровне модуля. Зависимость уровня модуля доступна всем функциям модуля как неизменяемое значение.
Определяется реализацией. Модульный
dep(D-8055; DIV-017; D-5101). Эта реализация связывает модульныйdepтолько в сагах и пайплайнах модуля; вmainи в обычных функциях он не доступен. Остальные местаdep(implсервиса, актор) — как в Стандарте.
- Если код, использующий
dep, может выполниться на роли без соответствующегоprovide, — ошибка компиляции. Тест МОЖЕТ переопределитьprovide(§18).
Связанные диагностики
duplicate-provide, missing-provide, unknown-role
См. также
Исходник: docs/spec/oxl-standard.md