What is the history of the split between zend extensions and modules?

php.internals

Unnamed Person

5 years ago
Today, zend extensions and modules have different features they support. I'm curious why this split came to be. Why did they need to be different types of shared objects? I am tentatively thinking about proposing for PHP 8.2 or 9.0 that the `zend_extension` struct holds a `zend_module_entry` by value or by pointer so that we can stop doing the janky hybrid extension tricks. I need to know a bit about the history here to make sure we don't accidentally regress on some point when doing this sort of thing.