Generator: fix default values of ctor promoted props
authorMichael Wallner <mike@php.net>
Thu, 20 Jan 2022 08:48:19 +0000 (09:48 +0100)
committerMichael Wallner <mike@php.net>
Thu, 20 Jan 2022 08:48:19 +0000 (09:48 +0100)
mdref/Generator/Prop.php

index 69d07cee2f38648aeeb6be242960c3700e3df11d..22f20bf453b852f4c8cba8888bce4c12cb45f7d3 100644 (file)
@@ -15,7 +15,7 @@ class Prop extends Scrap {
 }
 
 /** @var $gen Generator */
-/** @var $ref \ReflectionParameter */
+/** @var $ref \ReflectionProperty */
 /** @var $doc ?DocBlock */
 /** @var $tag ?Tags\Param */
 
@@ -25,6 +25,15 @@ __HALT_COMPILER();
 ?> $<?=$ref->getName() ?><?php
 if ($ref->hasDefaultValue()) :
        ?> = <?php var_export($ref->getDefaultValue()) ?><?php
+elseif (($params = $ref->getDeclaringClass()->getConstructor()?->getParameters())) :
+       foreach ($params as $param) :
+               if ($param->getName() === $ref->name) :
+                       if ($param->isDefaultValueAvailable()) :
+                               ?> = <?php var_export($param->getDefaultValue()) ?><?php
+                       endif;
+                       break;
+               endif;
+       endforeach;
 endif;
 
 if (($desc = $doc?->getSummary())) :