• Moved all of preInsertionValidity to ParentNode; removed
AbstractDocument
• Added host property to HTMLTemplateElement
• Increased required PHP version to 7.4
• ElementSet is now ElementMap again because it's now internally a map
of a Document and an array of Elements, but it's public API is still
that of a set.
• Template elements are now only added as a reference in ElementMap when
they're appended to a document. If they're removed, they're removed from
ElementMap. If a template element's owner document is destructed then it
and all of the other template elements in the document are removed from
ElementMap.
• Document::__construct now accepts \DOMDocument|string|null as its source.
• Document::serialize has been removed in favor of Document::saveHTML, making it more in line with PHP's DOM.
• Added Document::loadDOM for loading a vanilla PHP \DOMDocument into this library. As mentioned above Document::__constructor also accepts a \DOMDocument.
• Document::importNode will correctly convert an imported template element as a HTMLTemplateElement.
• TemplateElement is now HTMLTemplateElement.
• DOM walker methods now correctly check if the output of the closure is true
• Unnecessary test cases removed.
• New abstract class AbstractElement. Exists so Element can extend new
getters inherited from ContainerNode.
• Folded all serialization functionality into Document, but each node
type's __toString method still works.
• Text now has a couple of nonstandard sibling methods, but those will
be put in their own trait in the future as it's duplicate code from
Element
• ContainerNode and Element both now contain some DOM4 properties