On Mon, Feb 23, 2026, at 11:32 AM, Christian Schneider wrote:
> Am 22.02.2026 um 18:52 schrieb Tim Düsterhus <[email protected]>:
>> - Please add a link to the ML discussion to the “References” section:
>> https://news-web.php.net/php.internals/130121
>>
>> - The ABI change is irrelevant: Extensions have to be recompiled for every
>> PHP branch and new features may not ship with 3rd-digit versions anyways.
>> Mentioning this is thus misleading at best (affecting “Backwards
>> incompatible changes”, “Proposed PHP version”, and “RFC Impact”).
>>
>> - In fact, there is not even an ABI change, because the new field is added
>> at the end of the struct.
>>
>> - Within the “Ecosystem” impact, you should probably mention that this might
>> require adjustments to code style / formatting guidelines and autoformatters
>> - or at the very least a decision needs to be made there.
>
> Thanks for this feedback.
> I changed the RFC accordingly and also added an implementation PR and a
> test and I would consider it ready.
>
> RFC: https://wiki.php.net/rfc/parameter-doccomments
> PR: https://github.com/php/php-src/pull/21279
>
> Regards,
> - Chris
I'm in favor in principle, but have 2 major pushbacks.
1. As Matthew said, putting the doc comment after the parameter is
inconsistent. I've... never actually seen someone do that. I have seen people
put doc comments on the line before a parameter (which I then had to move to
the function docblock, which was annoying). Every other docblock-able
construct has the docblock as a prefix, not suffix. It should be a prefix here
as well.
I'm not sure I can support it as a suffix because it would be so inconsistent,
and would essentially mandate same-line comments rather than comment on own
line. Bear in mind, the parameter line could be quite long in a constructor,
and the description itself can be quite long, too.
public function __construct(
public final readonly SomeVerboselyNamedClass $thingie /** We have barely
any room here. */
// vs
/**
* We have plenty of room here, and can easily go to multiple lines if
necessary in context.
* Which it often is.
*/
public final readonly SomeVerboselyNamedClass $thingie /** We have barely
any room here. */
) {}
Prefix docblock is the way to go.
2. I realize the existing getDocComment() implementations also use
string|false, but at what point are we going to accept that is a stupid return
type and use string|null instead? :-( (I realize it may not be fixable here; I
just want to whine about that design flaw propagating even further.)
--Larry Garfield