НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте 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.