НАЧАЛО >> Ядро доступа к ИРБИС64 >> Методы класса i128f📄 Скачать в DOCX
Раздел описывает основные методы модуля i128f, доступные через UseModule('i128f')->... и i128f::getInstance()->....
После переноса внешних функций в класс модуля большинство пользовательских точек вызова больше не хранится в modules/i128f/__call. Это уменьшает накладные расходы на динамическую загрузку функций и оставляет прежний способ обращения к модулю через UseModule('i128f').
| Метод | Назначение | Возвращаемое значение и особенности |
|---|---|---|
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 с примененными параметрами пользователя. |
| Метод | Назначение | Возвращаемое значение и особенности |
|---|---|---|
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.
| Метод | Назначение | Возвращаемое значение и особенности |
|---|---|---|
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.
| Метод | Назначение | Возвращаемое значение и особенности |
|---|---|---|
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, если она отсутствует. |
| Метод | Статус | Что использовать дальше |
|---|---|---|
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.