Hi

Am 2026-04-29 19:30, schrieb Daniel Scherzer:
I haven't started work on implementing this yet, but there is a big
question about how to indicate friendship that I wanted to get some
feedback on. Specifically, should it be added with a new keyword, or with
an attribute?

It should be a proper keyword for the reasons that are also mentioned in your blog post: Attributes are not part of the public API and thus do not contribute to e.g. LSP checks. They are also expected to gracefully degrade when they do not exist, which means that running code written with friendship in mind on older PHP versions will silently expose a different API instead of failing in a visible way.

See also the reasoning that I provided in the #[\Override] RFC: https://wiki.php.net/rfc/marking_overriden_methods#why_an_attribute_and_not_a_keyword. I think the related mailing list discussion provides additional context - and I seem to remember I wrote something similar in some other RFC discussion as well.

Best regards
Tim Düsterhus

Reply via email to