[DOC-CVS] [doc-base] master: configure.php: recover failed XIncludes inside classsynopsis (#326)

[email protected] (Louis-Arnaud via GitHub) Mon, 27 Jul 2026 12:27:13 +0000
Newsgroups php.doc.cvs
Message-ID <[email protected]>
Author: Louis-Arnaud (lacatoire)
Committer: GitHub (web-flow)
Pusher: alfsb
Date: 2026-07-27T09:27:10-03:00

Commit: https://github.com/php/doc-base/commit/1592ca4c669b29e055c34634bec40d514f2c46c4
Raw diff: https://github.com/php/doc-base/commit/1592ca4c669b29e055c34634bec40d514f2c46c4.diff

configure.php: recover failed XIncludes inside classsynopsis (#326)

* configure.php: recover failed XIncludes inside classsynopsis

xinclude_residual_fixup handled listitem/refentry/refsect1/tbody/variablelist
parents but not classsynopsis, so a failed XInclude targeting a methodsynopsis
or fieldsynopsis inside a class synopsis hit the default branch and hard-failed
the build (Unknown parent of failed XInclude: classsynopsis).

Add a classsynopsis case that injects a <classsynopsisinfo role="comment">
carrying the failure marker. This is a valid child of classsynopsis per the
DocBook 5.2 RNG (verified), so translations with a missing class-member include
now surface the failure and keep validating, as intended for the other parents.

* Use single-quoted role='comment', keep the attribute for PhD

Dropping the attribute passes RNG but PhD's format_classsynopsisinfo
(Generic/XHTML.php:1145) treats a role-less classsynopsisinfo as the
class-body opener: it appends ' {', sets classsynopsis close=true and
asserts legacy rendering. role='comment' renders the marker as '/* ... */'
instead, which is what the fixup needs.

Changed paths:
  M  configure.php


Diff:

diff --git a/configure.php b/configure.php
index bd17307952..52255a0544 100755
--- a/configure.php
+++ b/configure.php
@@ -850,6 +850,9 @@ function xinclude_residual_fixup( DOMDocument $dom )
             case "variablelist":
                 $fixup = "<varlistentry><term></term><listitem><simpara>$alert</simpara></listitem></varlistentry>";
                 break;
+            case "classsynopsis":
+                $fixup = "<classsynopsisinfo role='comment'>$alert</classsynopsisinfo>";
+                break;
             default:
                 echo "  (Unknown parent of failed XInclude: $parent)\n";
                 $hardfail = true;