2021-05-04 15:57 GMT+02:00, Olle Härstedt <olleharst...@gmail.com>: > 2021-05-04 12:33 GMT+02:00, Nikita Popov <nikita....@gmail.com>: >> Hi internals, >> >> I'd like to present an RFC for property accessors: >> https://wiki.php.net/rfc/property_accessors >> >> Property accessors are like __get() and __set(), but for a single >> property. >> They also support read-only properties and properties with asymmetric >> visibility (public read, private write) as a side-effect. >> >> The proposal is modeled after C#-style accessors (also used by Swift), >> and >> syntactically similar to the previous >> https://wiki.php.net/rfc/propertygetsetsyntax-v1.2 proposal. >> >> While I put a lot of effort into both the proposal and the >> implementation, >> I've grown increasingly uncertain that this is the right direction for us >> to take. The proposal turned out to be significantly more complex than I >> originally anticipated (despite reducing the scope to only "get" and >> "set" >> accessors), and I'm sure there are some interactions I still haven't >> accounted for. I'm not convinced the value justifies the complexity. >> >> So, while I'm putting this up for discussion, it may be that I will not >> pursue landing it. I think a lot of the practical value of this accessors >> proposal would be captured by support for read-only (and/or >> private-write) >> properties. This has been discussed (and declined) in the past, but >> probably should be revisited. >> >> Regards, >> Nikita >> > > Hi, > > In general I'm no fan of trivial getters and setters at all in OOP. I > think a better solution is provided by: > > * readonly properties (or write-once, in the constructor) > * namespace- or package-internal accessing; "internal" as an > alternative to public/private > > Especially when getters and setters do not upheld any particular > invariants or check validation. > > Note that namespace-internal access cannot be provided by getters and > setters (though technically it's a big and hard change to PHP, AFAIK). > > Olle
Or maybe I shouldn't be a complete idiot and actually carefully read the RFC before any knee-jerk reaction. Disregard. Olle -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php