intval($GLOBALS['rSettings']['seg_time']), 'seg_list_size' => intval($GLOBALS['rSettings']['seg_list_size']) ); DatabaseFactory::connect(); // Синхронизация singleton-менеджеров для классов, мигрированных с CU SettingsManager::set($GLOBALS['rSettings']); RequestManager::set($GLOBALS['rRequest']); // FFmpeg paths — export to globals (streaming context) $GLOBALS['rFFPROBE'] = FfmpegPaths::probe(); $GLOBALS['rFFMPEG_CPU'] = FfmpegPaths::cpu(); $GLOBALS['rFFMPEG_GPU'] = FfmpegPaths::gpu(); self::syncStreamingContainer(); } /** * Экспортирует данные singleton-менеджеров в глобальные переменные. * * Позволяет использовать `global $rSettings;` внутри функций * вместо повторного вызова SettingsManager::getAll(). * * Вызывается один раз в конце initCore() / initStreaming(). * Глобалы — read-only snapshot. Для мутаций использовать Manager. * * Экспортируемые переменные: * $rSettings — настройки панели (SettingsManager) * $rRequest — параметры HTTP-запроса (RequestManager) * $rConfig — config.ini данные (ConfigReader) * $rServers — все серверы (ServerRepository) * $rFFPROBE — путь к ffprobe (FfmpegPaths) * $rFFMPEG_CPU — путь к ffmpeg CPU (FfmpegPaths) * $rFFMPEG_GPU — путь к ffmpeg GPU (FfmpegPaths) */ public static function exportGlobals(): void { $GLOBALS['rSettings'] = SettingsManager::getAll(); $GLOBALS['rRequest'] = RequestManager::getAll(); $GLOBALS['rConfig'] = ConfigReader::getAll(); $GLOBALS['rServers'] = ServerRepository::getAll(); $GLOBALS['rFFPROBE'] = FfmpegPaths::probe(); $GLOBALS['rFFMPEG_CPU'] = FfmpegPaths::cpu(); $GLOBALS['rFFMPEG_GPU'] = FfmpegPaths::gpu(); } private static function syncCoreContainer() { $rContainer = ServiceContainer::getInstance(); $rContainer->set('core.request', RequestManager::getAll()); $rContainer->set('core.config', ConfigReader::getAll()); $rContainer->set('core.settings', SettingsManager::getAll()); $rContainer->set('core.servers', ServerRepository::getAll()); $rContainer->set('core.bouquets', BouquetService::getAll()); $rContainer->set('core.categories', CategoryService::getFromDatabase()); } private static function syncStreamingContainer() { $rContainer = ServiceContainer::getInstance(); $rContainer->set('streaming.request', $GLOBALS['rRequest']); $rContainer->set('streaming.config', $GLOBALS['rConfig']); $rContainer->set('streaming.settings', $GLOBALS['rSettings']); $rContainer->set('streaming.servers', $GLOBALS['rServers']); } }