diff --git a/phpdotnet/phd/Package/Generic/XHTML.php b/phpdotnet/phd/Package/Generic/XHTML.php
index e5cdaed5..b5ab2b90 100644
--- a/phpdotnet/phd/Package/Generic/XHTML.php
+++ b/phpdotnet/phd/Package/Generic/XHTML.php
@@ -467,6 +467,11 @@ abstract class Package_Generic_XHTML extends Format_Abstract_XHTML {
'constant' => 'format_suppressed_text',
),
/** Those are used to retrieve the class/interface name to be able to remove it from method names */
+ 'package' => [
+ /* DEFAULT */ false,
+ 'packagesynopsis' => 'format_packagesynopsis_package_text'
+ ],
+ /** Those are used to retrieve the class/interface name to be able to remove it from method names */
'classname' => [
/* DEFAULT */ false,
'ooclass' => [
@@ -538,7 +543,10 @@ abstract class Package_Generic_XHTML extends Format_Abstract_XHTML {
protected $cchunk = array();
/* Default Chunk variables */
private $dchunk = array(
- "packagesynopsis" => false,
+ "packagesynopsis" => [
+ "open" => false,
+ "namespace" => '',
+ ],
"classsynopsis" => [
"close" => false,
"classname" => false,
@@ -1257,7 +1265,7 @@ public function format_classsynopsis($open, $name, $attrs, $props) {
/** Legacy presentation does not use the class attribute */
$this->cchunk["classsynopsis"]['legacy'] = !isset($attrs[Reader::XMLNS_DOCBOOK]["class"]);
- $inPackageSynopsis = $this->cchunk["packagesynopsis"] ?? false;
+ $inPackageSynopsis = $this->cchunk["packagesynopsis"]["open"] ?? false;
if ($this->cchunk["classsynopsis"]['legacy']) {
if ($open) {
@@ -1324,18 +1332,22 @@ public function format_classsynopsis_methodsynopsis_methodname_text($value, $tag
}
list($class, $method) = explode($explode, $value);
- if ($class !== $this->cchunk["classsynopsis"]["classname"]) {
+ $thisFqcn = $this->getFqcn();
+
+ if ($class !== $thisFqcn) {
return $value;
}
+
return $method;
}
public function format_packagesynopsis($open, $name, $attrs, $props) {
+ $this->cchunk["packagesynopsis"] = $this->dchunk["packagesynopsis"];
if ($open) {
- $this->cchunk["packagesynopsis"] = true;
+ $this->cchunk["packagesynopsis"]["open"] = true;
return '
';
}
- $this->cchunk["packagesynopsis"] = false;
+ $this->cchunk["packagesynopsis"]["open"] = false;
return '
';
}
@@ -1346,8 +1358,16 @@ public function format_packagesynopsis_package($open, $name, $attrs, $props) {
return ';
';
}
+ public function format_packagesynopsis_package_text($value, $tag) {
+ if (!$this->cchunk["packagesynopsis"]["namespace"]) {
+ $this->cchunk["packagesynopsis"]["namespace"] = $value;
+ }
+
+ return $this->TEXT($value);
+ }
+
public function format_enumsynopsis($open, $name, $attrs, $props) {
- $inPackageSynopsis = $this->cchunk["packagesynopsis"] ?? false;
+ $inPackageSynopsis = $this->cchunk["packagesynopsis"]["open"] ?? false;
if ($open) {
if ($inPackageSynopsis) {
return '';
@@ -2683,4 +2703,14 @@ public function onNewPage(): void
{
$this->perPageExampleCounter = 0;
}
+
+ protected function getFqcn() {
+ $fqcn = "";
+
+ if ($this->cchunk["packagesynopsis"]["namespace"]) {
+ $fqcn = $this->cchunk["packagesynopsis"]["namespace"] . "\\";
+ }
+
+ return $fqcn . $this->cchunk["classsynopsis"]["classname"];
+ }
}
diff --git a/phpdotnet/phd/Package/PHP/XHTML.php b/phpdotnet/phd/Package/PHP/XHTML.php
index fce9f6f7..a50b1b23 100644
--- a/phpdotnet/phd/Package/PHP/XHTML.php
+++ b/phpdotnet/phd/Package/PHP/XHTML.php
@@ -807,7 +807,7 @@ public function format_acronym_text($value, $tag) {
public function format_classsynopsis_fieldsynopsis_varname_text($value, $tag) {
if ($this->cchunk["classsynopsis"]["classname"]) {
if (strpos($value, "::") === false && strpos($value, "->") === false) {
- $value = $this->cchunk["classsynopsis"]["classname"] . "->" . $value;
+ $value = $this->getFqcn() . "->" . $value;
}
}
@@ -817,7 +817,7 @@ public function format_classsynopsis_fieldsynopsis_varname_text($value, $tag) {
public function format_classsynopsis_methodsynopsis_methodname_text($value, $tag) {
if ($this->cchunk["classsynopsis"]["classname"]) {
if (strpos($value, "::") === false && strpos($value, "->") === false) {
- $value = $this->cchunk["classsynopsis"]["classname"] . "::" . $value;
+ $value = $this->getFqcn() . "::" . $value;
}
}
diff --git a/tests/package/php/data/packagesynopsis_rendering.xml b/tests/package/php/data/packagesynopsis_rendering.xml
index 1cd3013a..e0e37a82 100644
--- a/tests/package/php/data/packagesynopsis_rendering.xml
+++ b/tests/package/php/data/packagesynopsis_rendering.xml
@@ -15,6 +15,17 @@
implements
Stringable
+
+
+ public
+ int
+ scale
+
+
+
+ public BcMath\NumberBcMath\Number::floor
+
+
diff --git a/tests/package/php/packagesynopsis_rendering_001.phpt b/tests/package/php/packagesynopsis_rendering_001.phpt
index ba011850..6e8ba6b5 100644
--- a/tests/package/php/packagesynopsis_rendering_001.phpt
+++ b/tests/package/php/packagesynopsis_rendering_001.phpt
@@ -34,6 +34,16 @@ Content:
implements
Stringable {
+
+
+
+
+
+ public floor(): BcMath\Number
+
}