Commit bb20b5ffb5d for php.net

commit bb20b5ffb5dfd3e26004c541c8fecd4b7d3b8f18
Merge: 534d28a54ce 3b5eeb92df6
Author: David Carlier <devnexen@gmail.com>
Date:   Fri Jun 12 21:37:57 2026 +0100

    Merge branch 'PHP-8.4' into PHP-8.5

    * PHP-8.4:
      ext/dom: resolve in-scope prefixed QName values during document validation.

diff --cc ext/dom/php_dom.h
index 34cc4af85c5,13f49879bb3..aea45caf2b2
--- a/ext/dom/php_dom.h
+++ b/ext/dom/php_dom.h
@@@ -161,10 -188,13 +161,16 @@@ xmlNodePtr dom_clone_node(php_dom_libxm
  void dom_set_document_ref_pointers(xmlNodePtr node, php_libxml_ref_obj *document);
  void dom_set_document_ref_pointers_attr(xmlAttrPtr attr, php_libxml_ref_obj *document);

 +/* Prop getters by offset */
 +zval *dom_get_prop_checked_offset(dom_object *obj, uint32_t offset, const char *name);
+ /* Temporarily materialize namespace declarations as nsDef entries on the tree so
+  * that libxml's native validators/canonicalizers can resolve prefixed QNames that
+  * appear in element/attribute *content*. Modern DOM keeps declarations off the
+  * tree (node->nsDef == NULL), which xmlSearchNs() cannot follow. Internal only. */
+ void dom_relink_ns_decls(HashTable *links, xmlNodePtr root);
+ void dom_unlink_ns_decls(HashTable *links);
  zval *dom_element_class_list_zval(dom_object *obj);
 +zval *dom_parent_node_children(dom_object *obj);

  typedef enum {
  	DOM_LOAD_STRING = 0,