1Between PHP 4.0.6 and 4.1.0, the Zend module struct changed in a way 2that broke both source and binary compatibility. If you are 3maintaining a third party extension, here's how to update it: 4 5If this was your old module entry: 6 7zend_module_entry foo_module_entry = { 8 "foo", /* extension name */ 9 foo_functions, /* extension function list */ 10 NULL, /* extension-wide startup function */ 11 NULL, /* extension-wide shutdown function */ 12 PHP_RINIT(foo), /* per-request startup function */ 13 PHP_RSHUTDOWN(foo), /* per-request shutdown function */ 14 PHP_MINFO(foo), /* information function */ 15 STANDARD_MODULE_PROPERTIES 16}; 17 18Here's how it should look if you want your code to build with PHP 194.1.0 and up: 20 21zend_module_entry foo_module_entry = { 22#if ZEND_MODULE_API_NO >= 20010901 23 STANDARD_MODULE_HEADER, 24#endif 25 "foo", /* extension name */ 26 foo_functions, /* extension function list */ 27 NULL, /* extension-wide startup function */ 28 NULL, /* extension-wide shutdown function */ 29 PHP_RINIT(foo), /* per-request startup function */ 30 PHP_RSHUTDOWN(foo), /* per-request shutdown function */ 31 PHP_MINFO(foo), /* information function */ 32#if ZEND_MODULE_API_NO >= 20010901 33 FOO_VERSION, /* extension version number (string) */ 34#endif 35 STANDARD_MODULE_PROPERTIES 36}; 37 38If you don't care about source compatibility with earlier PHP releases 39than 4.1.0, you can drop the #if/#endif lines. 40