НАЧАЛО >> Ядро доступа к ИРБИС64 >> Доступ к модулю i128f через getInstance📄 Скачать в DOCX
i128f::getInstance() возвращает общий объект модуля i128f. Метод нужен для кода, которому удобнее явно обращаться к классу модуля, а не вызывать глобальную функцию UseModule('i128f').
$moduleI128f = i128f::getInstance();
Метод возвращает тот же экземпляр, который создает и кэширует UseModule('i128f'). При первом обращении система подключает modules/i128f/api.php, создает объект класса i128f, выполняет Init() и PostInit(), а при следующих обращениях возвращает уже созданный объект из общего списка модулей.
Эквивалентные способы получения модуля:
$a = UseModule('i128f');
$b = i128f::getInstance();
Обе переменные ссылаются на один объект модуля в рамках текущего запроса.
i128f::getInstance() удобно использовать в коде, где уже подключен класс i128f или где требуется понятный тип возвращаемого значения:
$db = i128f::getInstance()->GetDb('IBIS');
Обычный вызов UseModule('i128f') остается поддерживаемым способом доступа к модулю. Новый метод не меняет публичный контракт существующего кода и только добавляет статическую точку входа к тому же экземпляру.
Не нужно создавать модуль напрямую через new i128f() или вручную вызывать Init(). Инициализацией управляет механизм модулей, поэтому доступ через getInstance() сохраняет тот же порядок запуска, что и UseModule('i128f').
После инициализации доступны обычные публичные методы модуля, включая Connect(), GetRootDP(), GetDb(), OpenDbByMnemonicName(), GetARMIni(), Format() и служебные операции, перенесенные из внешних функций __call в класс модуля.