docs: update MIGRATION.md — add Phase 16.5, remove completed items

This commit is contained in:
Divarion-D
2026-04-09 21:35:57 +03:00
parent 475c493c35
commit 407eefc7ae

View File

@@ -1,7 +1,7 @@
# XC_VM — План миграции
> Архитектурные принципы, структура проекта и описание компонентов — см. [ARCHITECTURE.md](ARCHITECTURE.md).
> Обновлено: 2026-04-07
> Обновлено: 2026-04-09
## Содержание
@@ -50,7 +50,7 @@
| **12** | CLI runner | console.php + 26 Commands + 25 CronJobs. includes/cli/ и crons/ удалены. LB guards |
| **13** | Streaming (13.113.3) | ShutdownHandler, StreamAuthMiddleware, micro-router. Hot path не затронут |
| **14** | CSS/JS partials | footer.php: 810→85 строк, common.js (730 стр.), XC_VM.Config bridge |
| **16** | Удаление admin.php | 121 функция → 17 классов, admin_proxies.php, loadLegacyProxies(), unified bootstrap |
| **16** | Удаление admin.php + proxy | 121 функция → 17 классов, 869 замен в 160+ файлах, admin_proxies.php удалён |
**Новые классы (Phase 8):** SettingsManager, RequestManager, ConfigReader, DatabaseFactory, RedisManager, FfmpegPaths, FileCache, DataEncryptor, InputSanitizer, IpUtils, UrlBuilder, ImageUtils, Helpers, ProcessManager, ConnectionManager, BackupService, ProviderService, ProfileService, RadioService, SystemCheck, InputValidator.
@@ -200,6 +200,19 @@
4. Makefile: `admin.php``admin_proxies.php` в `LB_FILES_TO_REMOVE`
5. `php -l` — all pass
#### 16.5 — Ликвидация proxy-функций ✅
> **Завершено:** 2026-04-09. `admin_proxies.php` удалён. `loadLegacyProxies()` удалён.
1. 869 замен в 160+ файлах: все proxy-функции (`goHome()`, `getBouquet()`, `deleteStream()`, `APIRequest()`, `systemapirequest()`, `checkPermissions()`, `destroySession()` и 114 др.) заменены прямыми вызовами классов.
2. `function_exists()` guards удалены из BaseAdminController, BaseResellerController, BouquetController и др.
3. `admin_proxies.php` — файл удалён.
4. `XC_Bootstrap::loadLegacyProxies()` — метод удалён из bootstrap.php.
5. Вызовы `loadLegacyProxies()` удалены из 5 CronJobs/Commands.
6. Makefile: `admin_proxies.php` убран из `LB_FILES_TO_REMOVE`.
7. SQL-запросы: конкатенация `'[' . implode(...) . ']'``?` placeholders (BouquetService, CategoryService).
8. PHP 8.x warnings: null-safe access fixes (live.php, server_view.php, stream.php).
---
## 6. Отложенные подшаги
@@ -214,15 +227,7 @@
## 7. Известные пробелы и TODO
> Актуализировано: 2026-04-07.
### ~~6.1. Legacy-остатки: crons/epg.php~~ ✅
Решено. Директория crons/ удалена, все вызовы → console.php, EPG → domain/Epg/EPG.php.
### ~~6.2. EventDispatcher не в ServiceContainer~~ ✅
Решено (2026-04-07). `EventDispatcher::class` зарегистрирован как `events` в `populateContainer()`. `ModuleLoader::bootAll()` использует `EventDispatcher::subscribe()`.
> Актуализировано: 2026-04-09.
### 6.3. Navbar.php — модульная навигация
@@ -238,24 +243,14 @@
84 JS-файла в `src/ministra/`. Symlink `www/c → ministra/` ломается при перемещении. Отложено как 13.4.
### ~~6.6. BalancerCommand sentinel~~ ✅
Решено. Обе ветки (type 1 и type 2) используют `$this->runSSH($rConn, 'test -f ...')` — проверка на удалённом сервере.
### Сводная таблица
| # | Пробел | Статус | Блокирует | Усилия |
|---|--------|--------|-----------|--------|
| 6.1 | crons/epg.php | ✅ | — | — |
| 6.2 | EventDispatcher в контейнере | ✅ | — | — |
| 6.3 | Navbar.php | ⏳ | Module navigation | 24 ч |
| 6.4 | Module routes в FC | 🟢 by design | — | — |
| 6.5 | Ministra JS | ⏳ | — | 24 ч |
| 6.6 | BalancerCommand sentinel | ✅ | — | — |
| §11.5 | Admin/Reseller REST API | ⏳ | Удаление www/ proxies | 816 ч |
| Phase 14 | CSS/JS partials (common.js) | ✅ | — | — |
| Phase 15 | Ликвидация src/includes/ | ✅ | — | — |
| Phase 16 | Удаление admin.php (legacy bootstrap) | ✅ | — | — |
---
@@ -267,13 +262,15 @@
bootstrap.php (единственный entry point)
├── autoload.php
├── ServiceContainer
── core/domain/
└── loadLegacyProxies() → admin_proxies.php (121 proxy функций)
── core/domain/
```
`bootstrap.php` — единственный bootstrap. `infrastructure/legacy/admin.php` удалён (Phase 16.4).
`admin_proxies.php` содержит 121 deprecated proxy-функцию; постепенно заменяются прямыми вызовами классов.
`includes/admin.php` — минимальный proxy (5 строк), перенаправляет на `bootstrap.php` + `boot(CONTEXT_ADMIN)`.
`bootstrap.php` — единственный bootstrap. Все legacy-файлы удалены:
- `infrastructure/legacy/admin.php` — удалён (Phase 16.4)
- `infrastructure/legacy/admin_proxies.php` — удалён (Phase 16.5)
- `includes/admin.php` — удалён (Phase 15.6)
Proxy-функций больше нет. Весь код использует прямые вызовы классов.
### Feature flags
@@ -293,7 +290,7 @@ bootstrap.php (единственный entry point)
Phase 14 ─── CSS/JS partials (footer.php) ✅ Завершено
Phase 16 ─── Удаление legacy admin.php ✅ Завершено
Phase 16 ─── Удаление legacy admin.php + proxy ✅ Завершено
Phase 15 ─── Ликвидация src/includes/ ✅ Завершено
@@ -306,5 +303,5 @@ Phase 11 ─── API deletion (11.5 + 11.6) 🟡 Средний р
| Релиз | Содержит | Риск |
|-------|----------|------|
| **v2.4** | ~~Phase 14 (CSS/JS)~~ ✅ + ~~Phase 16 (admin.php)~~ ✅ + ~~Phase 15 (ликвидация includes/)~~ ✅ | ✅ |
| **v2.4** | Phase 14 ✅ + Phase 15 ✅ + Phase 16 (вкл. 16.5 proxy elimination) ✅ | ✅ |
| **v2.5** | Phase 11 (API deletion) + пробелы 6.3 | 🟡 |