> De : Anthony Ferrara [mailto:ircmax...@gmail.com] > > If we were using a pure abstraction (only accessing the hash table > information through the public API), then fine because it's isolated. > However, many extensions and even places in core access hash table > structure directly (as can be seen by the updates needed by > https://github.com/php/php- > src/commit/2b42d719084631d255ec7ebb6c2928b9339915c2). > Meaning the complexity isn't encapsulated.
IMHO, that's the main problem. If a piece of code is accessed through an official published API only, its internal complexity can grow, provided the API still provides the same services. So, the first step should be to define and publish an 'official' full-featured API. Phpinternalsbook.com is a fine place for this. The question is what we do for PHP 5 : do we publish a PHP7-only API ? Do we backport it to 5.6, 5.5, 5.4 ? Once we have an API, we can fix the code to use it exclusively. One way I already used to check zval access is through an additional configure option that modifies the field names in the structure so that any access outside the API fails at compile time. This can be a valuable tool for extension developers. If you think the same, I'd be glad to participate. Regards François -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php