On Thursday, 4 July 2024 at 14:52, Gina P. Banyard <intern...@gpb.moe> wrote:
> Hello internals, > > I would like to formally open the discussion on an RFC I've been working on > for the past year: > https://wiki.php.net/rfc/container-offset-behaviour > > As DokuWiki is a bit of a faff at times, the Markdown sources are available > on GitHub: > https://github.com/Girgias/php-rfcs/blob/master/container-offset-behaviour.md I have more or less finalized the implementation of the object handler part. The JIT works, and my minimal opcache changes seem to not make everything crash. I have added one tiny subsection to the RFC about the removal of the zend_class_arrayaccess_funcs struct: https://wiki.php.net/rfc/container-offset-behaviour#removal_of_the_zend_class_arrayaccess_funcs_struct_and_ce_pointer One related issue that I found while working on this RFC is related to ext/phar: https://github.com/php/php-src/pull/14503 A PharFileInfo extends SplFileInfo and supports directories, which SplFileInfo does not. But Phar also allows the user to set the file info class via the setInfoClass() method. This method takes any SplFileInfo based class, such as SplFileObject. Thus, there is currently a bug in the extension where isset() will return true about being able to access a string offset that points to a directory but SplFileObject will throw a LogicException that it cannot be used with a directory. There are two-way to fix this issue, in my PR I went with the solution to return false for the has_dimension handler on directories if the info class is not based on PharFileInfo, or we could remove support for setting info classes that are not based on PharFileInfo. Let me know what you prefer, as my current implementation is based on the above PR to fix the Phar behavioural changes. Moreover, I know the traffic on the list has been pretty high, but I do intend to have this RFC up for voting for inclusion in PHP 8.4, and I'm not exactly sure how I am meant to interpret the lack of responses. Best regards, Gina P. Banyard