2021-05-04 15:57 GMT+02:00, Olle Härstedt <olleharstedt@gmail.com>:
> 2021-05-04 12:33 GMT+02:00, Nikita Popov <nikita.ppv@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