Annotation of embedaddon/php/ext/skeleton/skeleton.c, revision 1.1
1.1 ! misho 1: /* __header_here__ */
! 2:
! 3: #ifdef HAVE_CONFIG_H
! 4: #include "config.h"
! 5: #endif
! 6:
! 7: #include "php.h"
! 8: #include "php_ini.h"
! 9: #include "ext/standard/info.h"
! 10: #include "php_extname.h"
! 11:
! 12: /* If you declare any globals in php_extname.h uncomment this:
! 13: ZEND_DECLARE_MODULE_GLOBALS(extname)
! 14: */
! 15:
! 16: /* True global resources - no need for thread safety here */
! 17: static int le_extname;
! 18:
! 19: /* {{{ extname_functions[]
! 20: *
! 21: * Every user visible function must have an entry in extname_functions[].
! 22: */
! 23: const zend_function_entry extname_functions[] = {
! 24: PHP_FE(confirm_extname_compiled, NULL) /* For testing, remove later. */
! 25: /* __function_entries_here__ */
! 26: PHP_FE_END /* Must be the last line in extname_functions[] */
! 27: };
! 28: /* }}} */
! 29:
! 30: /* {{{ extname_module_entry
! 31: */
! 32: zend_module_entry extname_module_entry = {
! 33: #if ZEND_MODULE_API_NO >= 20010901
! 34: STANDARD_MODULE_HEADER,
! 35: #endif
! 36: "extname",
! 37: extname_functions,
! 38: PHP_MINIT(extname),
! 39: PHP_MSHUTDOWN(extname),
! 40: PHP_RINIT(extname), /* Replace with NULL if there's nothing to do at request start */
! 41: PHP_RSHUTDOWN(extname), /* Replace with NULL if there's nothing to do at request end */
! 42: PHP_MINFO(extname),
! 43: #if ZEND_MODULE_API_NO >= 20010901
! 44: "0.1", /* Replace with version number for your extension */
! 45: #endif
! 46: STANDARD_MODULE_PROPERTIES
! 47: };
! 48: /* }}} */
! 49:
! 50: #ifdef COMPILE_DL_EXTNAME
! 51: ZEND_GET_MODULE(extname)
! 52: #endif
! 53:
! 54: /* {{{ PHP_INI
! 55: */
! 56: /* Remove comments and fill if you need to have entries in php.ini
! 57: PHP_INI_BEGIN()
! 58: STD_PHP_INI_ENTRY("extname.global_value", "42", PHP_INI_ALL, OnUpdateLong, global_value, zend_extname_globals, extname_globals)
! 59: STD_PHP_INI_ENTRY("extname.global_string", "foobar", PHP_INI_ALL, OnUpdateString, global_string, zend_extname_globals, extname_globals)
! 60: PHP_INI_END()
! 61: */
! 62: /* }}} */
! 63:
! 64: /* {{{ php_extname_init_globals
! 65: */
! 66: /* Uncomment this function if you have INI entries
! 67: static void php_extname_init_globals(zend_extname_globals *extname_globals)
! 68: {
! 69: extname_globals->global_value = 0;
! 70: extname_globals->global_string = NULL;
! 71: }
! 72: */
! 73: /* }}} */
! 74:
! 75: /* {{{ PHP_MINIT_FUNCTION
! 76: */
! 77: PHP_MINIT_FUNCTION(extname)
! 78: {
! 79: /* If you have INI entries, uncomment these lines
! 80: REGISTER_INI_ENTRIES();
! 81: */
! 82: return SUCCESS;
! 83: }
! 84: /* }}} */
! 85:
! 86: /* {{{ PHP_MSHUTDOWN_FUNCTION
! 87: */
! 88: PHP_MSHUTDOWN_FUNCTION(extname)
! 89: {
! 90: /* uncomment this line if you have INI entries
! 91: UNREGISTER_INI_ENTRIES();
! 92: */
! 93: return SUCCESS;
! 94: }
! 95: /* }}} */
! 96:
! 97: /* Remove if there's nothing to do at request start */
! 98: /* {{{ PHP_RINIT_FUNCTION
! 99: */
! 100: PHP_RINIT_FUNCTION(extname)
! 101: {
! 102: return SUCCESS;
! 103: }
! 104: /* }}} */
! 105:
! 106: /* Remove if there's nothing to do at request end */
! 107: /* {{{ PHP_RSHUTDOWN_FUNCTION
! 108: */
! 109: PHP_RSHUTDOWN_FUNCTION(extname)
! 110: {
! 111: return SUCCESS;
! 112: }
! 113: /* }}} */
! 114:
! 115: /* {{{ PHP_MINFO_FUNCTION
! 116: */
! 117: PHP_MINFO_FUNCTION(extname)
! 118: {
! 119: php_info_print_table_start();
! 120: php_info_print_table_header(2, "extname support", "enabled");
! 121: php_info_print_table_end();
! 122:
! 123: /* Remove comments if you have entries in php.ini
! 124: DISPLAY_INI_ENTRIES();
! 125: */
! 126: }
! 127: /* }}} */
! 128:
! 129:
! 130: /* Remove the following function when you have succesfully modified config.m4
! 131: so that your module can be compiled into PHP, it exists only for testing
! 132: purposes. */
! 133:
! 134: /* Every user-visible function in PHP should document itself in the source */
! 135: /* {{{ proto string confirm_extname_compiled(string arg)
! 136: Return a string to confirm that the module is compiled in */
! 137: PHP_FUNCTION(confirm_extname_compiled)
! 138: {
! 139: char *arg = NULL;
! 140: int arg_len, len;
! 141: char *strg;
! 142:
! 143: if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
! 144: return;
! 145: }
! 146:
! 147: len = spprintf(&strg, 0, "Congratulations! You have successfully modified ext/%.78s/config.m4. Module %.78s is now compiled into PHP.", "extname", arg);
! 148: RETURN_STRINGL(strg, len, 0);
! 149: }
! 150: /* }}} */
! 151: /* The previous line is meant for vim and emacs, so it can correctly fold and
! 152: unfold functions in source code. See the corresponding marks just before
! 153: function definition, where the functions purpose is also documented. Please
! 154: follow this convention for the convenience of others editing your code.
! 155: */
! 156:
! 157: /* __function_stubs_here__ */
! 158:
! 159: /*
! 160: * Local variables:
! 161: * tab-width: 4
! 162: * c-basic-offset: 4
! 163: * End:
! 164: * vim600: noet sw=4 ts=4 fdm=marker
! 165: * vim<600: noet sw=4 ts=4
! 166: */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>