Компоненты: ИРБИС 128. Модуль i128f - Управление основной конфигурацией системы Завершено: 21.02.2026 10:42
Повышение изолированности ядра системы от модулей
-
Обеспечена совместимость с текущим исходным кодом
За счет распутывания процесса инициализации модулей (особенно оказалось актуальным для i128f, где вложенность инициализаций могла доходить до нескольких сотен на запрос) значительно повышена скорость обработки запросов.
Для модулей, которые теперь можно получить через getInstance не нарушена возможность работы через UseModule
Объекты модуля Ini изменили тип ObjectData на ObjectDataIni. Т.к. ObjectDataIni наследуется от ObjectData - весь существующий код остался совместимым
I128~~2160 Перенос функции Init() модулей из ObjectModule в modules. Цель - предотвращение зацикливания инициализаций модулей (случай когда в инициализация модуля1 вызывает инициализацию модуля2, которая вызывает инициализацию модуля1). Теперь присвоение класса модуля массиву $_MODULES происходит ДО вызова Init(), что предотвращает повторное создание класса модуля и предотвращает зацикливание инициализаций (доходит до нескольких сотен попыток инициализации)
I128~~2156 Доступность модуля i128f через i128f::getInstance();
I128~~2161 Излишнее подключение механизма обработки профилей для модуля i128f
I128~~2162 Типизация и инициализация свойств $IsConnected, $debugmode и $Databases модуля i128f
I128~~2163 Cинтаксическая ошибка для случая когда OpenDbByMnemonicName возвращает null
I128~~2164 Прекращение наследования модуля Ini от ObjectModule
I128~~2165 Ini::GetNew возвращает экземпляр класса ObjectDataIni вместо ObjectData (новый класс, наследуемый от ObjectData)
I128~~2167 Перенос внешних функций модуля Ini в класс ObjectDataIni
I128~~2168 Перенос внешних функций модуля i128f в класс модуля i128f
I128~~2169 Объявление переменных $RootDP и $Databases модуля i128f приватными (к ним нельзя напрямую обращаться извне, только внутри класса i128f), определен их тип
I128~~2170 Доступность модуля Ini через Ini::getInstance();
I128~~2171 БД, открываемые в режиме ReadOnly (с минусом перед именем) каждый раз открываются заново в функции i128f::OpenDbByMnemonicName
Удаление неиспользуемых переменные класса i128f $SesId и $dname
1. Связанные задачи
1.1. 🔗 Соответствует задача: I128-2179
[I128-2179] Объявление переменных $RootDP и $Databases модуля i128f приватными
Статус: Открытая задача | Автор: Ilya Mikhaylenko