On Wed, Apr 29, 2026, at 19:30, Daniel Scherzer wrote: > Hi internals, > > I'd like to add support for friendship in PHP. I don't mean friendship in the > PSR-8 huggable way, but rather in the C++ way of allowing access to > non-public parts of a class without needing to use Reflection. > > 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? > > Keyword > * matches C++ > * suggests that friends are aspects of the class, like properties and > constants and methods > * but would look a bit ugly if we added support for friends that are just for > specific properties/methods/constants > > Attribute > * matches how other metadata is added to classes > * would make it look cleaner if subsequently support was added for friendship > being applied to specific properties/methods/constants > * would differ from the current builtin attributes in that it doesn't just > add/remove warnings, but changes some functionality > > For a more in-depth explanation of the inspiration and these two potential > approaches, see https://scherzer.dev/Blog/20260309-php-friends. To be clear, > I have not yet written an implementation, much less the RFC, but I wanted to > get some initial feedback on if people would prefer a new keyword, or an > attribute, for declaring friends. > > -Daniel
Hi Daniel, We saw some friendship discussions in my nested class RFC, where nested classes implicitly became friends of the outer class. I'd recommend checking those threads for feedback about friendship and scope. — Rob
