Hi internals After (and if) my current in-voting RFC about spec-compliance DOM passes, some features become more easily possible to implement due to the necessary building blocks becoming in place in the extension code.
I would like to start implementing those. Therefore, I'd like to gauge the opinion of the community on the following two features before making an actual RFC and sitting through the process again. 1) Helper functions for CSS classes (i.e. classList). Requested here: https://github.com/php/php-src/issues/11688 This feature would add the DOMTokenList class along with the classList property to the Element class. It exists to ease the managing of CSS classes on elements, i.e. it deals with whitespace, duplicate class names, etc all for you using a simple set-like API. I expect that implementing this into the DOM extension is not too difficult, as the spec steps are really straight-forward [1] and we just have to reuse the internal APIs to manage attributes. 2) Built-in CSS selector API support In particular, Element::querySelector(All), Element::matches, and Element::closest support. For "old DOM" there is a trick to at least implement querySelector(All) in userland, and that is to translate the selector to XPath and use XPath queries internally. However, that's slower and more cumbersome than a native implementation. It's also just silly to not have this natively available since it's so commonly used. I have a prototype implementation of this already actually, because I got bored while fixing spec-compliance issues and wanted some funner stuff to do. It's based on Lexbor's CSS support. Kind regards Niels [1] https://dom.spec.whatwg.org/#interface-domtokenlist