Методы класса i128f


НАЧАЛО >> Ядро доступа к ИРБИС64 >> Методы класса i128f📄 Скачать в DOCX


Раздел описывает основные методы модуля i128f, доступные через UseModule('i128f')->... и i128f::getInstance()->....

После переноса внешних функций в класс модуля большинство пользовательских точек вызова больше не хранится в modules/i128f/__call. Это уменьшает накладные расходы на динамическую загрузку функций и оставляет прежний способ обращения к модулю через UseModule('i128f').

1. Получение экземпляра и подключение

Метод Назначение Возвращаемое значение и особенности
i128f::getInstance() Возвращает текущий объект модуля i128f. Эквивалентно UseModule('i128f').
Connect() Инициализирует корневой провайдер ИРБИС64 и читает irbis_server.ini, если файл доступен. Повторный вызов безопасен: если модуль уже подключен или подключается, метод сразу завершает работу.
GetRootDP() Возвращает основной провайдер доступа к ИРБИС64. Возвращает ObjectData или null, если подключение еще не выполнено.
GetRootAdminDP() Служебный синоним GetRootDP(). Оставлен для совместимости старого кода.
AdmServerRestart() Перезапускает основной сервер ИРБИС64 через корневой провайдер. После команды перезапуска ожидает восстановления ответа Noop.
GetServerIni() Возвращает объект настроек irbis_server.ini. Возвращает ObjectDataIni или null, если файл настроек недоступен.
getServerValue($section, $param, $default) Читает отдельное значение из irbis_server.ini. Если irbis_server.ini не загружен или значение отсутствует, возвращает $default.
GetARMIni() Собирает INI текущего ARM из кэша и корневого провайдера. Возвращает ObjectDataIni с примененными параметрами пользователя.

2. Базы данных и файлы

Метод Назначение Возвращаемое значение и особенности
GetDb($dbName = 'I128F') Получает объект базы по мнемоническому имени. Делегирует работу в OpenDbByMnemonicName().
OpenDbByMnemonicName($dbName) Открывает базу, применяет настройки ARM и INI базы, загружает WSOPT, PFTOPT, FMTMNU и назначает провайдер. Возвращает ObjectDataDatabase или null. Открытая база кэшируется в модуле.
OpenDbAndCount($dbName, $searchExpression, $sequenceSearchExpression) Открывает базу и, если передан поиск, считает количество найденных записей. Возвращает массив с ключами lasterror, error, db и при поиске cnt.
CreateDb($DbName, $Description, $forreaders, $isempty) Создает новую базу через административный провайдер и очищает кэш меню баз. Возвращает 0 при успешном создании или код ошибки.
GetDbFile($dbName, $fileName) Получает файл базы и кэширует его в DATAIS. Сначала проверяет локальный кэш, затем читает файл через объект базы.

Если имя базы передано с префиксом -, например -IBIS, база открывается в режиме только чтения. Режим фиксируется при первом открытии конкретной базы в рамках жизни объекта i128f.

3. Поиск и обработка записей

Метод Назначение Возвращаемое значение и особенности
FindFirstRecord($searchExpression, $sequenceSearchExpression, $dbName) Ищет первую запись по выражению поиска и последовательного поиска. Возвращает ObjectDataRecord или null, если запись не найдена или база недоступна.
ForEachRecord($class, $funcName, $dbName, $searchExpression, ...) Выполняет callback-метод для каждой записи результата поиска. Возвращает накопленный массив результата или числовой код ошибки. Поддерживает обработку выбранных MFN через SelectOperation и MfnList.
ForEachLinked($class, $funcName, $dbName, $record, $linkName, ...) Выполняет callback для записей, связанных с исходной записью указанным типом связи. Строит поиск по LINK-<linkName>-<sid> и использует ForEachRecord().
GetFirstLinkedRecord($db, $record, $linktype) Возвращает первую связанную запись по типу связи. Возвращает ObjectDataRecord или null.
GetLinkedRecords($db, $record, $linktype) Возвращает массив связанных записей по типу связи. В элементе 0 массива находится количество найденных записей.
DeleteAllFounded($searchExpression, $dbName) Удаляет все записи, найденные по поисковому выражению. Возвращает количество удаленных записей или код ошибки.
DeleteAllFoundedSec($searchExpression, $dbName) Удаляет найденные записи с учетом прав текущего пользователя. Удаляются только записи, для которых Security разрешает редактирование.

Callback для ForEachRecord() и ForEachLinked() получает объект базы, текущую запись и накопленный результат. Он должен вернуть массив с ключами action и res; действие save сохраняет текущую запись, fatal прерывает обход и возвращает res.

4. Форматирование и служебные операции

Метод Назначение Возвращаемое значение и особенности
Format($searchExpression, $sequenceSearchExpression, $start, $num, $format, $dbn) Выполняет поиск и форматирование через объект базы. Возвращает результат Search() выбранной базы.
GetBrief($dbName, $record) Расформатирует запись форматом brief. Возвращает строку; при недоступной базе возвращает пустую строку.
SearchAndFormat($searchExpression, $dbName, $fmtName, $fmtContainer, $params, $recStart, $recCount) Возвращает массив расформатированных записей. Использует ForEachRecord() и внутренний callback fe_SearchAndFormat().
SearchAndFormatAll(...) Совместимый вызов для SearchAndFormat(). Оставлен как оболочка над основным методом.
ParseError($msg) Преобразует код ошибки ИРБИС64 в русский текст. Для -128001 дополнительно выводит сообщения формально-логического контроля из массива.
wlog($str) Записывает строку с отметкой времени в i128Data/logs/i128f.log. Создает папку logs, если она отсутствует.

5. Совместимость и устаревающие методы

Метод Статус Что использовать дальше
GetMnuAsArray($dbName, $mnuName) Устаревает с версии 2026.1. Работать с объектом меню через ObjectDataDatabase::GetMnu() и методы Mnu.
GetMnuAsSelect($mnuName, $selname, $IsAllExists, $curvalue, ...) Устаревает с версии 2026.1. Формировать HTML-контрол в вызывающем модуле или использовать специализированный компонент формы.
ShowIScripts() Устаревает с версии 2026.1. Использовать UseModule('WIrbis')->UseWIrbisScripts().

В каталоге modules/i128f/__call остаются только обработчики, которые завязаны на старый механизм динамического вызова, HTTP-параметры или фоновые операции: SimpleForm, SaveTaskExec, Utf8ToRtf, FER/Preload и FER/Download.