Доступ к модулю i128f через getInstance


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


i128f::getInstance() возвращает общий объект модуля i128f. Метод нужен для кода, которому удобнее явно обращаться к классу модуля, а не вызывать глобальную функцию UseModule('i128f').

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

$moduleI128f = i128f::getInstance();

Метод возвращает тот же экземпляр, который создает и кэширует UseModule('i128f'). При первом обращении система подключает modules/i128f/api.php, создает объект класса i128f, выполняет Init() и PostInit(), а при следующих обращениях возвращает уже созданный объект из общего списка модулей.

Эквивалентные способы получения модуля:

$a = UseModule('i128f');
$b = i128f::getInstance();

Обе переменные ссылаются на один объект модуля в рамках текущего запроса.

2. Когда использовать

i128f::getInstance() удобно использовать в коде, где уже подключен класс i128f или где требуется понятный тип возвращаемого значения:

$db = i128f::getInstance()->GetDb('IBIS');

Обычный вызов UseModule('i128f') остается поддерживаемым способом доступа к модулю. Новый метод не меняет публичный контракт существующего кода и только добавляет статическую точку входа к тому же экземпляру.

3. Инициализация и совместимость

Не нужно создавать модуль напрямую через new i128f() или вручную вызывать Init(). Инициализацией управляет механизм модулей, поэтому доступ через getInstance() сохраняет тот же порядок запуска, что и UseModule('i128f').

После инициализации доступны обычные публичные методы модуля, включая Connect(), GetRootDP(), GetDb(), OpenDbByMnemonicName(), GetARMIni(), Format() и служебные операции, перенесенные из внешних функций __call в класс модуля.