mirror of
https://github.com/Vateron-Media/XC_VM.git
synced 2026-10-15 20:03:27 +02:00
3.9 KiB
3.9 KiB
Обзор архитектуры
Каноничные детали рантайма: ARCHITECTURE.md Актуальный план миграции: MIGRATION.md
Назначение
Эта страница — русскоязычное архитектурное зеркало для контрибьюторов. Она фиксирует то же практическое состояние, что и основная архитектурная документация: смешанный runtime (legacy + новый код), незавершённая миграция, явные границы модулей и контекстов.
Текущее состояние в одном блоке
- Тип проекта: структурированный PHP-монолит
- Модель рантайма: смешанная (
ServiceContainer+ constructor injection + legacy globals) - Основной web flow:
public/index.phpдля панельных страниц + compatibility-пути для API/streaming - Streaming: активный hot path всё ещё зависит от
www/stream/init.php - Модули: CLI-интеграция активна, web boot интеграция неполная
- Модель сборки: MAIN (полная) и LB (streaming-ориентированное подмножество)
Роли директорий
src/core/: инфраструктурные примитивы (DB, HTTP, Events, Config, Logging, Container)src/domain/: бизнес-контексты (Stream, Vod, Line, User, Server, Auth и др.)src/streaming/: слой delivery/auth/protection для stream endpoint'овsrc/public/: front controller, routes, controllers, templates, assetssrc/cli/: слой выполнения команд и cronsrc/modules/: опциональный extension-слойsrc/infrastructure/legacy/: оставшийся compatibility-кодsrc/www/: legacy-runtime поверхность, всё ещё задействованная в продовом трафике
Известные разрывы (синхронизированы с EN)
- Полный constructor injection пока цель, а не универсально соблюдённое правило.
www/пока нельзя безопасно удалять: на него завязаны nginx/runtime/service-процессы.ModuleLoader::bootAll()не встроен вpublic/index.php, поэтому web lifecycle модулей неполный.- Часть public-контроллеров всё ещё делегирует в legacy/procedural handlers.
Правила для контрибьюторов
- Используйте ARCHITECTURE.md и MIGRATION.md как источник истины по рантайму и очередности миграции.
- Не документируйте «идеальное» состояние до фактического выполнения изменений в коде и инфраструктуре.
- Держите EN и RU архитектурные страницы синхронными под одним Sync-ID.
- Никогда не публикуйте секреты, API-ключи и внутренние credentials в клиентской части документации и примеров.
Чеклист синхронизации
- Обновляйте docs/ru/development/architecture.md и docs/en/development/architecture.md в одном коммите.
- Сохраняйте одинаковые
Sync-IDи дату актуализации. - При значимых изменениях рантайма обновляйте и эту страницу, и корневой ARCHITECTURE.md.