Re: Re: [RFC] [Discussion] Friends
| From: | Gina P. Banyard | Date: | Sat, 14 Nov 2026 01:44:36 +0000 |
| Subject: | Re: Re: [RFC] [Discussion] Friends | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-133102@lists.php.net to get a copy of this message | ||
On Saturday, 14 November 2026 at 00:32, Daniel Scherzer <daniel.e.scherzer@gmail.com> wrote:
> Hi internals,
>
> On Sun, May 10, 2026 at 9:28 AM Daniel Scherzer <daniel.e.scherzer@gmail.com> wrote:
>
>> Hi internals,
>>
>> I'd like to start the discussion for a new RFC about adding friendship in PHP. This is
>> a follow-up to a pre-RFC discussion thread
>> https://externals.io/message/130710.
>>
>> * RFC: https://wiki.php.net/rfc/friends
>> * Implementation: https://github.com/php/php-src/pull/21937
>>
>> Thanks,
>> -Daniel
>
> I'd like to resume discussion of this RFC since I was reminded of it at MergePHP
> yesterday.
>
> As far as I can recall and find, there was no remaining feedback that I needed to address. The
> current proposal is that friendship allows access to protected but not private parts of a class.
>
> Since it's been a few months, this RFC discussion is considered inactive, and per our
> policy a new cooldown period is required. This will not go to vote before November 27.
>
> Please let me know if you have any feedback,
> -Daniel
I had a quick glance at the implementation and can't see any issues.
However, I'm not convinced by the feature and will be voting against it.
Moreover, I'm not sure I agree with the following premise in the RFC:
> The use of reflection for bypassing visibility restrictions in non-test code is generally
> frowned upon, and should not be recommended.
While most usages of the reflection API are indeed in test code I don't understand why
production code should allegedly not use it.
Especially as in this case it seems to me that making the properties private and using reflection to
by-pass the visibility by related components is very much a valid use case.
Best regards,
Gina P. Banyard