Files
XC_VM/docs/ru/development/bootstrap-contexts.md
T
Divarion_D bdbcde97c7 docs: commit generated ru, translate locally before release (not in CI)
CI translation was slow, so move it out of GitHub Actions: docs/ru is now a
committed, generated tree refreshed LOCALLY before a release; CI only builds it.

- pages.yml: drop the setup-python/cache/translate steps — the workflow now just
  installs the build toolchain and runs `mkdocs build --strict` on the committed
  en+ru trees.
- .gitignore: stop ignoring docs/ru (now committed); keep site/ + .docs-cache/.
- Split deps: docs/requirements.txt = build only (mkdocs-material, static-i18n,
  used by CI); tools/docs/requirements.txt = translators (local-only).
- Makefile: docs-venv installs both; docs-build/docs-serve no longer translate
  (translation is the deliberate `make docs-translate` release step).
- updates_checklist.md: new "Regenerate translated documentation" step
  (make docs-translate + docs-build, commit docs/ru with the release commit).
- Commit the generated docs/ru (37 files, translators/yandex).

Rule: edit ONLY docs/en; docs/ru is generated — never hand-edit it.
2026-08-20 22:37:44 +03:00

6.0 KiB

Контексты начальной загрузки

XC_Bootstrap - это единая точка входа для инициализации системы. Каждый контекст загружает только те подсистемы, которые необходимы для его пути выполнения. Контекст выражается в виде значения BootContext enum.


Краткий справочник

Случай перечисления Типичное использование
BootContext::MINIMAL Скрипты, которым нужны только пути /конфигурация
BootContext::CLI Задания Cron и команды CLI
BootContext::STREAM Конечные точки потоковой передачи (live, vod, timeshift)
BootContext::ADMIN Панель администратора/реселлера

Детали контекста

BootContext::МИНИМАЛЬНЫЙ

Загружает константы, пути, конфигурацию, логгер и обработчики ошибок. Нет подключения к базе данных.

Включает в себя:

  • Composer PSR-4 автозагрузчик (vendor/autoload.php)
  • константы пути (MAIN_HOME, INCLUDES_PATH, ...)
  • регистратор (Logger::init())
  • помощники по устранению ошибок (generateError(), generate404())

Не включает: базу данных, Redis, сеансы, переводчик, API-интерфейсы администратора.

require_once '/home/xc_vm/bootstrap.php';
XC_Bootstrap::boot(BootContext::MINIMAL);

Загрузочный текст::CLI

Используется для задач cron и CLI. Добавляет инициализацию базы данных и устаревшего ядра через MINIMAL.

Включает в себя:

  • Подключение к базе данных
  • LegacyInitializer
  • необязательный Redis ('redis' => true)
  • необязательный заголовок процесса ('process' => '...')
require_once '/home/xc_vm/bootstrap.php';
XC_Bootstrap::boot(BootContext::CLI, [
    'cached' => true,
    'process' => 'xc_vm: my-job',
]);

BootContext::ПОТОК

Облегченный контекст для конечных точек потоковой передачи с высокой нагрузкой.

Включает в себя:

  • Подключение к базе данных (cached=true)
  • защита от наводнений и проверка хостинга

Не включает: Redis, переводчик, API-интерфейсы администратора, сеансы.

require_once '/home/xc_vm/bootstrap.php';
XC_Bootstrap::boot(BootContext::STREAM, ['cached' => true]);

BootContext::АДМИНИСТРАТОР

Полная инициализация панели администратора/реселлера.

Включает в себя:

  • защищенный сеанс (SameSite=Strict)
  • Подключение к базе данных (cached=false)
  • LegacyInitializer
  • Redis
  • API-интерфейсы администратора/реселлера
  • переводчик
  • обработчик завершения работы
  • постоянные состояния и глобальные параметры администратора
require_once '/home/xc_vm/bootstrap.php';
XC_Bootstrap::boot(BootContext::ADMIN);

Матрица подсистемы

Подсистема минимальный КЛИ течение администратор
Константы/пути ✅ ✅ ✅ ✅
Лесоруб ✅ ✅ ✅ ✅
Защита от наводнений — — ✅ ✅
Проверка хостинга — — ✅ ✅
База данных — ✅ ✅ ✅
Инициализатор наследия — ✅ — ✅
Redis — выбирать — ✅
Сессия — — — ✅
API администратора — — — ✅
Переводчик — — — ✅

boot() параметры

XC_Bootstrap::boot(BootContext $context, array $options = []);
Вариант Тип По умолчанию Описание
cached bool true для ПОТОКА, false в противном случае Использовать кэшированные настройки
redis bool true для АДМИНИСТРАТОРА, false в противном случае Подключение Redis
process string '' Название процесса для CLI
shutdown callable встроенный Переопределить обратный вызов завершения работы

Идемпотентность

boot() выполняется один раз для каждого процесса. Повторные вызовы игнорируются.

XC_Bootstrap::boot(BootContext::ADMIN);
XC_Bootstrap::boot(BootContext::CLI); // ignored

Для проведения тестов:

XC_Bootstrap::reset();

Общедоступные методы

XC_Bootstrap::getContext(): ?BootContext
XC_Bootstrap::isBooted(): bool
XC_Bootstrap::isCli(): bool
XC_Bootstrap::getDatabase(): ?Database
XC_Bootstrap::getContainer(): ServiceContainer

Связанные файлы

Файл Роль
src/bootstrap.php Определяет MAIN_HOME, требует автозагрузки Composer, загружает контекст
src/Core/Enum/BootContext.php Перечисление контекста загрузки
src/Core/Init/LegacyInitializer.php Унаследованная инициализация для каждого контекста