Skip to content

Commit 7c6fe5e

Browse files
committed
[skip ci] extract common code
1 parent 53879a9 commit 7c6fe5e

File tree

1 file changed

+22
-42
lines changed

1 file changed

+22
-42
lines changed

build/gen_stub.php

Lines changed: 22 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1483,6 +1483,17 @@ private function getFlagsAsArginfoString(): string
14831483
return $flags;
14841484
}
14851485

1486+
private function generateRefSect1(DOMDocument $doc, string $role): DOMElement {
1487+
$refSec = $doc->createElement('refsect1');
1488+
$refSec->setAttribute('role', $role);
1489+
$refSec->append(
1490+
"\n ",
1491+
$doc->createEntityReference('reftitle.' . $role),
1492+
"\n "
1493+
);
1494+
return $refSec;
1495+
}
1496+
14861497
/**
14871498
* @param array<string, FuncInfo> $funcMap
14881499
* @param array<string, FuncInfo> $aliasMap
@@ -1531,12 +1542,7 @@ public function getMethodSynopsisDocument(array $funcMap, array $aliasMap): ?str
15311542
$refentry->append($refnamediv, $REFSEC1_SEPERATOR);
15321543

15331544
/* Creation of <refsect1 role="description"> */
1534-
$descriptionRefSec = $doc->createElement('refsect1');
1535-
$descriptionRefSec->setAttribute('role', 'description');
1536-
$descriptionRefSec->appendChild(new DOMText("\n "));
1537-
$refTitleDescription = $doc->createEntityReference('reftitle.description');
1538-
$descriptionRefSec->appendChild($refTitleDescription);
1539-
$descriptionRefSec->appendChild(new DOMText("\n "));
1545+
$descriptionRefSec = $this->generateRefSect1($doc, 'description');
15401546

15411547
$methodSynopsis = $this->getMethodSynopsisElement($funcMap, $aliasMap, $doc);
15421548
if (!$methodSynopsis) {
@@ -1565,12 +1571,7 @@ public function getMethodSynopsisDocument(array $funcMap, array $aliasMap): ?str
15651571
}
15661572

15671573
/* Creation of <refsect1 role="errors"> */
1568-
$errorsRefSec = $doc->createElement('refsect1');
1569-
$errorsRefSec->setAttribute('role', 'errors');
1570-
$errorsRefSec->appendChild(new DOMText("\n "));
1571-
$refTitleErrors = $doc->createEntityReference('reftitle.errors');
1572-
$errorsRefSec->appendChild($refTitleErrors);
1573-
$errorsRefSec->appendChild(new DOMText("\n "));
1574+
$errorsRefSec = $this->generateRefSect1($doc, 'errors');
15741575
$errorsDescriptionPara = $doc->createElement('para');
15751576
$errorsDescriptionPara->appendChild(new DOMText("\n When does this function issue E_* level errors, and/or throw exceptions.\n "));
15761577
$errorsRefSec->appendChild($errorsDescriptionPara);
@@ -1582,17 +1583,13 @@ public function getMethodSynopsisDocument(array $funcMap, array $aliasMap): ?str
15821583
$changelogRefSec = $this->getChangelogSection($doc);
15831584
$refentry->append($changelogRefSec, $REFSEC1_SEPERATOR);
15841585

1585-
// TODO Examples, and Notes sections
15861586
$exampleRefSec = $this->getExampleSection($doc);
15871587
$refentry->append($exampleRefSec, $REFSEC1_SEPERATOR);
15881588

1589+
// TODO Notes section?
1590+
15891591
/* Creation of <refsect1 role="seealso"> */
1590-
$seeAlsoRefSec = $doc->createElement('refsect1');
1591-
$seeAlsoRefSec->setAttribute('role', 'seealso');
1592-
$seeAlsoRefSec->appendChild(new DOMText("\n "));
1593-
$refTitleSeeAlso = $doc->createEntityReference('reftitle.seealso');
1594-
$seeAlsoRefSec->appendChild($refTitleSeeAlso);
1595-
$seeAlsoRefSec->appendChild(new DOMText("\n "));
1592+
$seeAlsoRefSec = $this->generateRefSect1($doc, 'seealso');
15961593

15971594
/* TODO Actually generate a markup for class names, functions and links?
15981595
<simplelist>
@@ -1644,12 +1641,7 @@ public function getMethodSynopsisDocument(array $funcMap, array $aliasMap): ?str
16441641
}
16451642

16461643
private function getParameterSection(DOMDocument $doc): DOMElement {
1647-
$parametersRefSec = $doc->createElement('refsect1');
1648-
$parametersRefSec->setAttribute('role', 'parameters');
1649-
$parametersRefSec->appendChild(new DOMText("\n "));
1650-
$refTitle = $doc->createEntityReference('reftitle.parameters');
1651-
$parametersRefSec->appendChild($refTitle);
1652-
$parametersRefSec->appendChild(new DOMText("\n "));
1644+
$parametersRefSec = $this->generateRefSect1($doc, 'parameters');
16531645
if (empty($this->args)) {
16541646
$noParamEntity = $doc->createEntityReference('no.function.parameters');
16551647
$parametersRefSec->appendChild($noParamEntity);
@@ -1706,12 +1698,8 @@ private function getParameterSection(DOMDocument $doc): DOMElement {
17061698
}
17071699

17081700
private function getReturnValueSection(DOMDocument $doc): DOMElement {
1709-
$returnRefSec = $doc->createElement('refsect1');
1710-
$returnRefSec->setAttribute('role', 'returnvalues');
1711-
$returnRefSec->appendChild(new DOMText("\n "));
1712-
$refTitle = $doc->createEntityReference('reftitle.returnvalues');
1713-
$returnRefSec->appendChild($refTitle);
1714-
$returnRefSec->appendChild(new DOMText("\n "));
1701+
$returnRefSec = $this->generateRefSect1($doc, 'returnvalues');
1702+
17151703
$returnDescriptionPara = $doc->createElement('para');
17161704
$returnDescriptionPara->appendChild(new DOMText("\n "));
17171705

@@ -1799,12 +1787,7 @@ private function generateDocbookInformalTable(
17991787
}
18001788

18011789
private function getChangelogSection(DOMDocument $doc): DOMElement {
1802-
$refSec = $doc->createElement('refsect1');
1803-
$refSec->setAttribute('role', 'changelog');
1804-
$refSec->appendChild(new DOMText("\n "));
1805-
$refTitle = $doc->createEntityReference('reftitle.changelog');
1806-
$refSec->appendChild($refTitle);
1807-
$refSec->appendChild(new DOMText("\n "));
1790+
$refSec = $this->generateRefSect1($doc, 'changelog');
18081791
$headers = [
18091792
$doc->createEntityReference('Version'),
18101793
$doc->createEntityReference('Description'),
@@ -1821,10 +1804,7 @@ private function getChangelogSection(DOMDocument $doc): DOMElement {
18211804
}
18221805

18231806
private function getExampleSection(DOMDocument $doc): DOMElement {
1824-
$refSec = $doc->createElement('refsect1');
1825-
$refSec->setAttribute('role', 'examples');
1826-
$refTitle = $doc->createEntityReference('reftitle.examples');
1827-
$refSec->append("\n ", $refTitle);
1807+
$refSec = $this->generateRefSect1($doc, 'examples');
18281808

18291809
$example = $doc->createElement('example');
18301810
$example->setAttribute('xml:id', 'func-or-method-name.example.basic');
@@ -1873,7 +1853,7 @@ private function getExampleSection(DOMDocument $doc): DOMElement {
18731853
$example->append("\n ", $screen);
18741854
$example->append("\n ");
18751855

1876-
$refSec->append("\n ", $example);
1856+
$refSec->append($example);
18771857

18781858
$refSec->appendChild(new DOMText("\n "));
18791859
return $refSec;

0 commit comments

Comments
 (0)