logger->info('[core:7.0.9] language_packs 테이블 부재 — 언어팩 seed 재동기화 스킵'); return; } $packs = LanguagePack::query()->where('status', 'active')->get(); if ($packs->isEmpty()) { $context->logger->info('[core:7.0.9] 활성 언어팩 없음 — 언어팩 seed 재동기화 스킵'); return; } foreach ($packs as $pack) { try { HookManager::doAction('core.language_packs.activated', $pack); $context->logger->info('[core:7.0.9] 언어팩 seed 번역 재동기화 완료: '.$pack->identifier); } catch (Throwable $e) { // 개별 팩 실패(디렉토리 손상 등)가 업그레이드 전체를 막지 않도록 격리 — // 남은 팩은 계속 처리하고, 실패 팩은 로그로 남겨 운영자가 후속 조치한다. $context->logger->warning( '[core:7.0.9] 언어팩 seed 재동기화 실패(건너뜀): '.$pack->identifier.' — '.$e->getMessage() ); } } } }