Fix Markdown-mangling artifacts the free web engine (yandex) produced in the
committed docs/ru, and regenerate the whole tree cleanly (0 fallbacks):
- Sentinel format @@N@@ -> {N}. MT engines are trained to preserve curly
format-string placeholders, so {N} survives code-heavy lines where @@N@@ (and
ZZZ…ZZZ, which also duplicated its Z) were split/moved — e.g. the stray
"@0@@" in the FAQ and "load balancerZ" in the README are gone.
- Possessive: a trailing English `'s` is consumed INTO the masked span and
dropped on restore. Every sentinel format breaks when a bare `'s` sits right
after it, and Russian has no possessive `'s`.
- Validate + retry: after restore, any leftover brace fragment triggers a retry
(the engine is non-deterministic); after a few failures the line stays English
so a broken token is never emitted.
- Glossary += KeyDB, yt-dlp, Ubuntu, iptables, MAGSCAN.
Regenerated docs/ru (37 files, translators/yandex): no residual sentinels,
mkdocs build --strict clean.
6.0 KiB
Контексты начальной загрузки
XC_Bootstrap - это единая точка входа для инициализации системы.
Каждый контекст загружает только те подсистемы, которые необходимы для его пути выполнения.
Контекст выражается в виде значения перечисления BootContext.
Краткий справочник
| Случай перечисления | Типичное использование |
|---|---|
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 |
Унаследованная инициализация для каждого контекста |