internals:extensions
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
internals:extensions [2013/04/10 09:19] – jpauli | internals:extensions [2013/04/10 12:06] – jpauli | ||
---|---|---|---|
Line 176: | Line 176: | ||
Before PHP5.5, Zend extensions needed to be provided the full path to the extension (ini token " | Before PHP5.5, Zend extensions needed to be provided the full path to the extension (ini token " | ||
- | As of 5.5, this in note the case any more and both PHP and Zend extension | + | As of 5.5, this in not the case any more and both PHP and Zend extensions |
| | ||
At this stage, PHP and Zend extensions have been parsed from ini files, but nothing more has been done. | At this stage, PHP and Zend extensions have been parsed from ini files, but nothing more has been done. | ||
===== Registering additionnal extensions from the SAPI module ===== | ===== Registering additionnal extensions from the SAPI module ===== | ||
- | Again before loading/ | + | Again before loading/ |
Those get registered here, the same way statically compiled got registered just few steps before, to recall : | Those get registered here, the same way statically compiled got registered just few steps before, to recall : | ||
* Checks for extension dependencies, | * Checks for extension dependencies, | ||
Line 191: | Line 191: | ||
| | ||
===== Loading the ini parsed extensions ===== | ===== Loading the ini parsed extensions ===== | ||
+ | |||
+ | Here comes time where PHP will effectively **load** Zend and PHP extensions, calling some hooks onto them. '' | ||
+ | First thing to know : **Zend extensions are loaded before PHP extensions** | ||
+ | |||
+ | ==== Loading Zend extensions ==== | ||
+ | '' | ||
+ | * zend_extension_entry | ||
+ | * extension_version_info | ||
+ | |||
+ | If those symbols are missing, the Zend extension will fail to load | ||
+ | |||
+ | Then API compatibility is checked from '' | ||
+ | After that, buildid is checked. Buildid is a combinaison of the previously checked API number, debug flag and thread safety flag (ZTS). Other components may be used for buildid check. Zend extension' | ||
+ | |||
+ | | ||
+ | |||
+ | After those checks, the Zend extensions get registered. '' | ||
+ | A message is dispatched to all previously registered Zend extension to make them know a new Zend extension is beeing registered. Then, '' | ||
+ | This system has been designed so that Zend extensions may know each other, and eventually fail loading if they guess they are not compatible with each other. | ||
+ | |||
+ | | ||
+ | |||
+ |
internals/extensions.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1