// // php-armadillo/arma.c // // @Author CismonX // #include "php_arma.h" #include #include #define ARMA_CE_INIT(cls, name) \ zend_class_entry cls##_ce; \ INIT_CLASS_ENTRY(cls##_ce, name, cls##_methods); \ arma_##cls##_ce = zend_register_internal_class(&cls##_ce) #define ARMA_CONST_DECLARE(cls, name, val) \ zend_declare_class_constant_long(arma_##cls##_ce, name, sizeof(name) - 1, val) #define ARMA_PROP_DECLARE(cls, name, flags) \ zend_declare_property_null(arma_##cls##_ce, name, sizeof(name) - 1, flags) #define ARMA_HANDLERS_INIT(cls) \ memcpy(&cls##_handlers, &std_object_handlers, sizeof(zend_object_handlers)) #define ARMA_HANDLER_SET(cls, name) \ cls##_handlers.name = cls##_##name ZEND_DECLARE_MODULE_GLOBALS(arma) #ifdef ZTS ZEND_TSRMLS_CACHE_DEFINE() #endif PHP_MINIT_FUNCTION(arma) { #ifdef ZTS ZEND_INIT_MODULE_GLOBALS(arma, NULL, NULL); #endif // ... return SUCCESS; } PHP_MINFO_FUNCTION(arma) { php_info_print_table_start(); php_info_print_table_header(2, "armadillo support", "enabled"); php_info_print_table_end(); } zend_module_entry arma_module_entry = { STANDARD_MODULE_HEADER, "arma", NULL, PHP_MINIT(arma), NULL, NULL, NULL, PHP_MINFO(arma), PHP_ARMA_VERSION, STANDARD_MODULE_PROPERTIES }; #ifdef COMPILE_DL_ARMA ZEND_GET_MODULE(arma) #endif