Учебник РНР
НазадГлава 32. Исходные Ресурсы. Обсуждение. Вперёд

Создание get_module()

Это специальная функция для всех динамически загружаемых модулей. Посмотрим сначала на создание через макрос ZEND_GET_MODULE:
#if COMPILE_DL_FIRSTMOD
ZEND_GET_MODULE(firstmod)
#endif

Реализация функции окружена оператором условной компиляции. Это необходимо, поскольку функция get_module() требуется только тогда, когда ваш модуль построен как динамическое расширение. Специфицируя определение COMPILE_DL_FIRSTMOD в команде компилятору (см. ранее обсуждение инструкций компилятора, необходимых для построения динамического расширения), вы можете инструктировать ваш модуль, намереваетесь вы построить его как динамическое расширение или как встроенный модуль. Если вам нужен встроенный модуль, реализация get_module() просто будет не нужна.

get_module() вызывается Zend во время загрузки модуля. Вы можете представлять её как вызываемую с помощью вызова dl() в вашем скрипте. Её назначение в том, чтобы передать блок информации модуля обратно Zend, чтобы информировать машину о содержимом модуля.

Если вы не реализуете функцию get_module() в вашем динамически загружаемом модуле, Zend выдаст вам сообщение об ошибке при попытке доступа к ней.


Назад Оглавление Вперёд
Объявление блока Zend-модуля ВверхРеализация всех импортируемых функций