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.