From 407eefc7aeb39214eddab3065d0f645fa0ba251a Mon Sep 17 00:00:00 2001 From: Divarion-D Date: Thu, 9 Apr 2026 21:35:57 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20update=20MIGRATION.md=20=E2=80=94=20add?= =?UTF-8?q?=20Phase=2016.5,=20remove=20completed=20items?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MIGRATION.md | 53 +++++++++++++++++++++++++--------------------------- 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/MIGRATION.md b/MIGRATION.md index 02b4877..e7e7f59 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -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.1–13.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 | 2–4 ч | | 6.4 | Module routes в FC | 🟢 by design | — | — | | 6.5 | Ministra JS | ⏳ | — | 2–4 ч | -| 6.6 | BalancerCommand sentinel | ✅ | — | — | | §11.5 | Admin/Reseller REST API | ⏳ | Удаление www/ proxies | 8–16 ч | -| 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 | 🟡 |