[I128-2730] Несогласованные внутренние контракты словаря и XRF в DP_Irbis64Native


НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.2.5 >> [I128-2730] Несогласованные внутренние контракты словаря и XRF в DP_Irbis64Native📄 Скачать в DOCX


Тип Версия Статус Приоритет Исполнитель
⚙️ Исправление ошибок 2026.2.5 🔘 Завершено Средний Unassigned

Компоненты: Нет

Завершено: 24.07.2026 17:26

Проблема: В DP_Irbis64Native часть внутренних методов словаря при ошибке отсутствующего инвертного файла возвращала только код ошибки вместо стандартной пары [код, термин]. Дополнительно автоопределение формата XRF использовало неявные boolключи массива, а путь Bдерева для пустого индекса не полностью соответствовал описанной структуре. Изза этого статический анализ PHP 8.1 показывал предупреждения о несогласованных типах в nativeпровайдере.

Решение: Внутренние контракты приведены к единой форме: методы словаря возвращают одинаковую структуру результата даже при ошибке, счетчики автоопределения XRF используют явные числовые ключи, а путь пустого индекса содержит все обязательные поля. Поведение provider-слоя для пользовательских сценариев не меняется.

Технические подробности: В IrbisSpaceNative::FindTerm, NextTerm и PrevTerm ошибочная ветка InvSpace === null теперь возвращает [XpftConst::ERR_FILEINVERT, '']. В MstSpace::Open счетчики определения формата XRF переведены с boolключей на intключи. В TreeManager::findPath начальный leaf-path для пустой базы дополнен ключом index.