Stay Hungry.Stay Foolish.
PHP扩展框架各个宏编译成so动态链接库文件之后对应的函数符号

几个比较重要的宏

1、PHP_RINIT_FUNCTION宏

#define PHP_RINIT_FUNCTION      ZEND_MODULE_ACTIVATE_D
#define ZEND_MODULE_ACTIVATE_D(module)      int ZEND_MODULE_ACTIVATE_N(module)(INIT_FUNC_ARGS)
#define ZEND_MODULE_ACTIVATE_N(module)      zm_activate_##module

2、PHP_MINIT_FUNCTION宏

#define PHP_MINIT_FUNCTION      ZEND_MODULE_STARTUP_D
#define ZEND_MODULE_STARTUP_D(module)       int ZEND_MODULE_STARTUP_N(module)(INIT_FUNC_ARGS)
#define ZEND_MODULE_STARTUP_N(module)       zm_startup_##module

3、ZEND_GET_MODULE宏

#define ZEND_GET_MODULE(name) \
    BEGIN_EXTERN_C()\
    ZEND_DLEXPORT zend_module_entry *get_module(void) { return &name##_module_entry; }\
    END_EXTERN_C()

4、PHP_MSHUTDOWN_FUNCTION宏

#define PHP_MSHUTDOWN_FUNCTION  ZEND_MODULE_SHUTDOWN_D
#define ZEND_MODULE_SHUTDOWN_D(module)      int ZEND_MODULE_SHUTDOWN_N(module)(SHUTDOWN_FUNC_ARGS)
#define ZEND_MODULE_SHUTDOWN_N(module)      zm_shutdown_##module

5、PHP_RSHUTDOWN_FUNCTION宏

#define PHP_RSHUTDOWN_FUNCTION  ZEND_MODULE_DEACTIVATE_D
#define ZEND_MODULE_DEACTIVATE_D(module)    int ZEND_MODULE_DEACTIVATE_N(module)(SHUTDOWN_FUNC_ARGS)
#define ZEND_MODULE_DEACTIVATE_N(module)    zm_deactivate_##module

6、PHP_MINFO_FUNCTION宏

#define PHP_MINFO_FUNCTION      ZEND_MODULE_INFO_D
#define ZEND_MODULE_INFO_D(module)          void ZEND_MODULE_INFO_N(module)(ZEND_MODULE_INFO_FUNC_ARGS)
#define ZEND_MODULE_INFO_N(module)          zm_info_##module

7、PHP_FUNCTION宏

#define PHP_FUNCTION            ZEND_FUNCTION
#define ZEND_FUNCTION(name)             ZEND_NAMED_FUNCTION(ZEND_FN(name))
#define ZEND_NAMED_FUNCTION(name)       void name(INTERNAL_FUNCTION_PARAMETERS)
#define ZEND_FN(name) zif_##name
PHP
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
评论

暂无评论~~