Brief update:

We found a few more PHP DOM compatibility bugs, including one with
DOMNode::normalize(): https://bugs.php.net/bug.php?id=78221

In addition, one of our engineers implemented a pure-PHP DOM
implementation: https://github.com/linehan/DOMOperator

We're not using that in production yet, but it's probably quicker than
trying to make PHP's DOM implementation spec-compliant.
 --scott

On Wed, Mar 20, 2019 at 11:48 AM C. Scott Ananian <canan...@wikimedia.org>
wrote:

> On Sun, Mar 17, 2019 at 6:57 PM Rob Richards <rricha...@ctindustries.net>
> wrote:
>
>> I'll take a look through the lists you have but you need to remember
>> that the DOM specs were not written for HTML. While HTML might have some
>> more restrictive requirements that piggy back on the DOM specs
>> themselves, they are not the standard for DOM. The output HTML
>> functionality was more convenience methods than part of the core
>> extension,
>>
>
> Just dealing with the latest WHATWG DOM specs (not the html-specific part)
> would still involve grappling with `getAttribute` behavior, the case of
> nodeName (search for "HTML-uppercased qualified name" in the DOM spec), the
> numeric node type of the root document, performance of methods on
> namespaced nodes, etc.  It would certainly be a useful step forward, even
> if it weren't a full HTML DOM.
>
> What would be even better is if the hooks were present to allow
> subclassing the core DOM types so that you could implement HTMLElement in
> pure PHP as a subclass of DOMElement, etc.  For example, right now it is
> impossible to create a new DOMNodeList from PHP, which makes pure PHP
> implementations of the missing HTML DOM methods (like querySelectorAll)
> impossible (for example wikimedia/zest-css has to return an array instead
> of a DOMNodeList).
>  --scott
>
>

-- 
(http://cscott.net)

Reply via email to