mirror of
https://github.com/php/php-src.git
synced 2024-12-20 23:39:46 +08:00
48 lines
1.7 KiB
Plaintext
48 lines
1.7 KiB
Plaintext
This file describes extension module API details. Refer to
|
|
README.EXT_SKEL to create extension skeleton files. Refer to
|
|
Hacker's Guide for PHP internals.
|
|
|
|
http://www.php.net/manual/en/internals2.php
|
|
|
|
|
|
|
|
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
|
|
PHP_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.
|