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