Skip to content

Commit 30b2d77

Browse files
committed
Merge branch 'PHP-8.5'
* PHP-8.5: Fix replacement of class signatures when a packagesynopsis element is present
2 parents 36e1469 + 6932260 commit 30b2d77

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

build/gen_stub.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5779,6 +5779,19 @@ function replaceClassSynopses(
57795779
continue;
57805780
}
57815781
$className = $child->textContent;
5782+
5783+
if ($classSynopsis->parentElement->nodeName === "packagesynopsis" &&
5784+
$classSynopsis->parentElement->firstElementChild->nodeName === "package"
5785+
) {
5786+
$package = $classSynopsis->parentElement->firstElementChild;
5787+
$namespace = $package->textContent;
5788+
5789+
$className = $namespace . "\\" . $className;
5790+
$elementToReplace = $classSynopsis->parentElement;
5791+
} else {
5792+
$elementToReplace = $classSynopsis;
5793+
}
5794+
57825795
if (!isset($classMap[$className])) {
57835796
continue;
57845797
}
@@ -5794,7 +5807,7 @@ function replaceClassSynopses(
57945807

57955808
// Check if there is any change - short circuit if there is not any.
57965809

5797-
if (replaceAndCompareXmls($doc, $classSynopsis, $newClassSynopsis)) {
5810+
if (replaceAndCompareXmls($doc, $elementToReplace, $newClassSynopsis)) {
57985811
continue;
57995812
}
58005813

0 commit comments

Comments
 (0)