logo

Централизованная библиотечная система г. Рязани

Подсистема управления модулями


НАЧАЛО >> Сервер приложений ИРБИС 64/128 >> Ядро системы >> Подсистема управления модулями


Система ИРБИС 64/128 имеет в основе модульную структуру. К каждому модулю и его функциям из кода PHP можно обратиться, только используя вызов глобальной функции UseModules(‘<Мнемоническое_имя_модуля>’). Эта функция фозвращает указатель на экземпляр класса модуля или NULL в случае если модуль не существует или произошла критическая ошибка при его инициализации. Каждый модуль создается и инициализируется только один раз. Это означает что:

$a=UseModule(‘SomeModule’);

$b=UseModule(‘SomeModule’);

$a->test=0;

$b->test=1;

Echo $a->test;

 

Результат: ‘1’

Каждый модуль должен располагаться в папке modules/<мнемоническое_имя_модуля>/api.php

Внутри файла api.php должен быть определен класс с именем, совпадающим с <мнемоническое_имя_модуля>.

Структура класса модуля должна включать в себя как минимум следующую функцию:

GetModuleTitle() – Возвращает название модуля

При инициализации модуля через UseModule для классов модулей, наследуемых от ObjectModule вызывается функция PostInit. Описание функции см. в ObjectModule

Для каждого модуля при его установке с помощью АРМ Администратор в БД I128F создается запись типа MODULE со следующей структурой:

Поле

Подполе

Значение

1

A

Мнемоническое имя модуля

 

B

Название модуля

2 (повт.)

A

Тип управляемых модулем записи

113

 

Информация подсистемы безопасности (см. описание мдуля Security)

Для модулей, наследуемых от ObjectModule также дополнительно вызываются функции SetupModule(true,true) и SetupModuleConfigure()

Вы не должны напрямую вызывать класс ObjectModule. Это класс предназначен только для наследования от него классов модулей.

Наследование Вашего модуля от класса ObjectModule является хорошей идеей, т.к. предоставляет для Вашего модуля готовую инфраструктуру по конфигурированию, безопасности и другим аспектам.