# SOME DESCRIPTIVE TITLE. # Copyright (C) 2025, kolo # This file is distributed under the same license as the Argenta package. # FIRST AUTHOR , 2025. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Argenta \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-11-03 19:01+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: en\n" "Language-Team: en \n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.17.0\n" #: ../../root/dependency_injection.rst:4 msgid "Внедрение зависимостей" msgstr "Dependency Injection" #: ../../root/dependency_injection.rst:6 msgid "" "Внедрение зависимостей (Dependency Injection, DI) — это паттерн " "проектирования, который помогает писать слабосвязанный, легко тестируемый" " и расширяемый код. Вместо того чтобы обработчики сами создавали нужные " "им объекты (зависимости), они лишь объявляют их в качестве аргументов. В " "момент вызова ``Argenta`` автоматически \"внедряет\" эти зависимости." msgstr "" #: ../../root/dependency_injection.rst:8 msgid "" "``Argenta`` использует библиотеку ``dishka`` для реализации DI, что " "позволяет декларативно объявлять зависимости прямо в сигнатурах ваших " "обработчиков. Подробнее о `DI`, `IoC` и API для создания провайдеров " "можно прочитать в `официальной документации dishka " "`_." msgstr "" #: ../../root/dependency_injection.rst:12 msgid "Основная идея" msgstr "" #: ../../root/dependency_injection.rst:14 msgid "" "Представьте, что вашему обработчику для работы нужен доступ к базе " "данных. Вместо импорта и инициализации соединения внутри функции, вы " "просто объявляете его как аргумент с аннотацией типа:" msgstr "" #: ../../root/dependency_injection.rst:17 msgid "" "``argenta.di.FromDishka`` является псевдонимом для ``dishka.FromDishka``," " и они полностью взаимозаменяемы." msgstr "" #: ../../root/dependency_injection.rst:23 msgid "" "``Argenta`` с помощью ``dishka`` разрешит зависимость по типу " "``Connection`` и внедрит её. Но прежде чем использовать зависимость, её " "необходимо объявить в провайдере." msgstr "" #: ../../root/dependency_injection.rst:29 msgid "После создания провайдера его необходимо зарегистрировать в оркестраторе." msgstr "" #: ../../root/dependency_injection.rst:36 msgid "Как это работает?" msgstr "" #: ../../root/dependency_injection.rst:38 msgid "В основе DI в Argenta лежат **провайдеры** и **контейнер**." msgstr "" #: ../../root/dependency_injection.rst:40 msgid "" "**Провайдер (Provider)** — это \"рецепт\", который объясняет, как " "создавать и настраивать ту или иную зависимость (например, подключение к " "БД, API-клиент или любой другой сервис)." msgstr "" #: ../../root/dependency_injection.rst:41 msgid "" "**Контейнер (IoC Container)** — это \"фабрика\", которая хранит все " "рецепты (провайдеры) и по запросу создаёт и выдаёт готовые зависимости." msgstr "" #: ../../root/dependency_injection.rst:44 msgid "Встроенные провайдеры" msgstr "" #: ../../root/dependency_injection.rst:46 msgid "" "``Argenta`` поставляется со встроенным провайдером, который даёт доступ к" " важным системным зависимостям без дополнительной настройки. Например, вы" " можете получить объект ``ArgSpace``, который содержит аргументы " "командной строки, переданные при запуске приложения." msgstr "" #: ../../root/dependency_injection.rst:48 msgid "" "Пример получения объекта ``ArgSpace`` и вывода в консоль значения " "аргумента `type`:" msgstr "" #: ../../root/dependency_injection.rst:55 msgid "Обмен данными между хендлерами" msgstr "" #: ../../root/dependency_injection.rst:57 msgid "" "Помимо DI, обработчики могут обмениваться данными в рамках сессии через " "**объект контекста**. В ``Argenta`` эту роль выполняет объект " "``Response``." msgstr "" #: ../../root/dependency_injection.rst:59 msgid "" "Каждый обработчик может записывать в него данные, а также читать, " "обновлять и удалять их." msgstr "" #: ../../root/dependency_injection.rst:63 msgid "Подробнее об этом можно прочитать в разделе :ref:`root_api_response`." msgstr "" #~ msgid "мда мда мда" #~ msgstr "" #~ msgid "" #~ "Внедрение зависимостей (Dependency Injection, " #~ "DI) — это паттерн проектирования, " #~ "который помогает писать слабосвязанный, легко" #~ " тестируемый и расширяемый код. Вместо " #~ "того чтобы хендлеры сами создавали " #~ "нужные им объекты (зависимости) они лишь" #~ " объявляют о необходимости в их " #~ "получении, а ``Argenta`` \"внедряет\" их " #~ "в хендлеры в момент вызова." #~ msgstr "" #~ msgid "" #~ "``Argenta`` использует популярную библиотеку " #~ "``dishka`` для реализации DI, что " #~ "позволяет вам декларативно объявлять " #~ "зависимости прямо в сигнатурах ваших " #~ "хендлеров. Более подробно про ``DI``, " #~ "``IoC``, ``API`` создания провайдеров и " #~ "другое вы можете прочитать тут_." #~ msgstr "" #~ msgid "" #~ "Представьте, что вашему хендлеру для " #~ "работы нужен доступ к базе данных. " #~ "Вместо того чтобы импортировать и " #~ "инициализировать соединение внутри функции, вы" #~ " просто объявляете его как аргумент с" #~ " тайп-хинтом:" #~ msgstr "" #~ msgid "" #~ "``argenta.di.FromDishka`` это алиас к " #~ "``dishka.FromDishka``, они полностью " #~ "взаимозаменяемы." #~ msgstr "" #~ msgid "" #~ "``Argenta`` -> ``dishka`` зарезолвит тайпхинты" #~ " и внедрит зависимость с возвращаемым " #~ "типом ``Connection``, прежде чем использовать" #~ " зависимость её нужно создать, для " #~ "этого нужно создать соответствующий провайдер." #~ msgstr "" #~ msgid "После создания провайдера, его нужно зарегистрировать в оркестраторе." #~ msgstr "" #~ msgid "В основе DI в Argente лежат **провайдеры** и **контейнер**." #~ msgstr "" #~ msgid "" #~ "``Argenta`` поставляется с предопределённым " #~ "провайдером, который даёт доступ к " #~ "важным системным зависимостям без какой-либо" #~ " настройки. К примеру вы можете " #~ "получить объект ``ArgSpace``, который " #~ "представляет из себя распаршенные аргументы" #~ " командной строки при запуске приложения." #~ msgstr "" #~ msgid "" #~ "Краткий сэмпл кода, который получает " #~ "объект ``ArgSpace`` и выводит в консоль" #~ " аргумент с именем \"type\":" #~ msgstr "" #~ msgid "" #~ "Помимо DI, хендлеры могут общаться друг" #~ " с другом в контексте приложения " #~ "через **объект контекста** (в ``Argenta`` " #~ "эту роль выполняет объект ``Response``)." #~ msgstr "" #~ msgid "Каждый хендлер может записывать данные, читать, обновлять и удалять." #~ msgstr ""