summaryrefslogtreecommitdiff
path: root/README.EXTENSIONS
diff options
context:
space:
mode:
Diffstat (limited to 'README.EXTENSIONS')
-rw-r--r--README.EXTENSIONS39
1 files changed, 39 insertions, 0 deletions
diff --git a/README.EXTENSIONS b/README.EXTENSIONS
new file mode 100644
index 0000000..51e3b73
--- /dev/null
+++ b/README.EXTENSIONS
@@ -0,0 +1,39 @@
+Between PHP 4.0.6 and 4.1.0, the Zend module struct changed in a way
+that broke both source and binary compatibility. If you are
+maintaining a third party extension, here's how to update it:
+
+If this was your old module entry:
+
+zend_module_entry foo_module_entry = {
+ "foo", /* extension name */
+ foo_functions, /* extension function list */
+ NULL, /* extension-wide startup function */
+ NULL, /* extension-wide shutdown function */
+ PHP_RINIT(foo), /* per-request startup function */
+ PHP_RSHUTDOWN(foo), /* per-request shutdown function */
+ PHP_MINFO(foo), /* information function */
+ STANDARD_MODULE_PROPERTIES
+};
+
+Here's how it should look if you want your code to build with PHP
+4.1.0 and up:
+
+zend_module_entry foo_module_entry = {
+#if ZEND_MODULE_API_NO >= 20010901
+ STANDARD_MODULE_HEADER,
+#endif
+ "foo", /* extension name */
+ foo_functions, /* extension function list */
+ NULL, /* extension-wide startup function */
+ NULL, /* extension-wide shutdown function */
+ PHP_RINIT(foo), /* per-request startup function */
+ PHP_RSHUTDOWN(foo), /* per-request shutdown function */
+ PHP_MINFO(foo), /* information function */
+#if ZEND_MODULE_API_NO >= 20010901
+ FOO_VERSION, /* extension version number (string) */
+#endif
+ STANDARD_MODULE_PROPERTIES
+};
+
+If you don't care about source compatibility with earlier PHP releases
+than 4.1.0, you can drop the #if/#endif lines.