Skip to content

Engine — Ядро инфраструктуры

Engine (Движок) — это совокупность систем, отвечающих за жизненный цикл бота, автоматическую сборку компонентов и интеграцию с внешними сервисами. Именно здесь сосредоточена вся "магия" codex-bot, которая позволяет писать меньше кода для настройки.


💎 Философия Движка

Движок построен на принципе Convention over Configuration (Соглашение важнее конфигурации). Это значит, что если вы следуете стандартной структуре папок, движок сам найдет ваши фичи, подключит роутеры и настроит переводы без единой строчки ручного кода.


🏗 Ключевые подсистемы

Подсистема Назначение Описание
Discovery Авто-поиск фич Сканирует папки и регистрирует оркестраторы и роутеры.
BotBuilder Сборщик бота Fluent-интерфейс для настройки Bot, Dispatcher и Middleware.
Container DI-контейнер Единое хранилище всех сервисов и клиентов проекта.
Middlewares Прослойки Стандартный стек: Throttling, User Validation, Director Injection.
I18n Локализация Умная работа с переводами и изоляция локалей.
HTTP/DB Клиенты Базовые абстракции для работы с API и базами данных.

🚀 Жизненный цикл (Startup Flow)

Когда вы запускаете бота, Движок выполняет следующие шаги: 1. Инициализация Контейнера: Загружаются настройки и клиенты (БД, Redis). 2. Discovery: Сканируются фичи, создаются оркестраторы. 3. BotBuilder: Собирается объект Dispatcher, подключаются все системные мидлвари. 4. I18n: Компилируются локали и подключается middleware переводов. 5. Startup: Бот начинает слушать Telegram и (если настроено) Redis Streams. Фреймворк активирует только те подсистемы, которые вы явно включили в настройках или выбрали в CLI-визарде. 6. Webhooks: Запускается веб-сервер для обработки входящих вебхуков (пока в разработке).


🧭 Связанные компоненты

  • Director — использует данные, подготовленные движком.
  • ViewSender — инициализируется через BotBuilder.