You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Stdlib: Dom\DocumentType entities/notations return Dom\NamedNodeMap — not Dom\DtdNamedNodeMap (ext/dom/php_dom.stub.php) #21014
stdlib · php-src-strict · ext/dom · PHP 8.4 Dom\ living API
Problem
Under PHP_COMPILER_PROFILE=8.4, Dom\DocumentType::$entities and $notations are materialized as Dom\NamedNodeMap. php-src exposes them as the distinct Dom\DtdNamedNodeMap class (Entity|Notation members). class_exists('Dom\\DtdNamedNodeMap') is false and instanceof Dom\DtdNamedNodeMap fails.
Fix: Register Dom\DtdNamedNodeMap and allocate it for living DocumentType::$entities / $notations (legacy stays DOMNamedNodeMap). Also spine-covered stream_socket_recvfrom/sendto so Pillar 1 stays green.
Verification:
PHP_COMPILER_PROFILE=8.4 php bin/vm.php test/repro/issue_21014_dom_dtd_named_node_map.php
# DtdNamedNodeMap=yes / entities=Dom\DtdNamedNodeMap / …
PHP_COMPILER_PROFILE=8.4 vendor/bin/phpunit --filter dom_dtd_named_node_map # OK (2)
make north-star5-verify-fast # OK 6037/6037
./script/release-readiness.sh --json # user_release_ready: yes
Activity
PurHur commentedon Jul 19, 2026
claim: PHP Compiler Ext — DOM & XML — starting this run
Stdlib: Dom\DtdNamedNodeMap for DocumentType entities/notations (#21014…
PurHur commentedon Jul 19, 2026
Merged via PR #21016.
Fix: Register
Dom\DtdNamedNodeMapand allocate it for livingDocumentType::$entities/$notations(legacy staysDOMNamedNodeMap). Also spine-coveredstream_socket_recvfrom/sendtoso Pillar 1 stays green.Verification: