On Tue, 4 May 2021 at 06:34, Nikita Popov <nikita....@gmail.com> wrote:

> 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
>

I don't have a vote, but I've worked on a few ActiveRecord-style ORMs in
PHP, and this is the sort of feature that would make me want to rewrite
everything to take advantage of it.

I've used property accessors in C# and really appreciated them. The 20%
increase in performance over magic getters and setters is a nice bonus.

Allowing the creation of engine-enforced private-set properties is another
bonus, even though I'm already able to enforce that in my projects via
static analysis.

Best wishes,

Matt

Reply via email to