Re: [RFC[ Property accessor hooks, take 2
| From: | Robert Landers | Date: | Thu, 22 Feb 2024 08:34:40 +0000 |
| Subject: | Re: [RFC[ Property accessor hooks, take 2 | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-122451@lists.php.net to get a copy of this message | ||
On Wed, Feb 21, 2024 at 7:59 PM Larry Garfield <larry@garfieldtech.com> wrote:
>
> Hello again, fine Internalians.
>
> After much on-again/off-again work, Ilija and I are back with a more polished property access
> hooks/interface properties RFC. It’s 99% unchanged from last summer; the PR is now essentially
> complete and more robust, and we were able to squish the last remaining edge cases.
>
> Baring any major changes, we plan to bring this to a vote in mid-March.
>
> https://wiki.php.net/rfc/property-hooks
>
> It’s long, but that’s because we’re handling every edge case we could think of.
> Properties involve dealing with both references and inheritance, both of which have complex
> implications. We believe we’ve identified the most logical handling for all cases, though.
>
> Note the FAQ question at the end, which explains some design choices.
>
> There’s one outstanding question, which is slightly painful to ask: Originally, this RFC was
> called “property accessors,” which is the terminology used by most languages. During early
> development, when we had 4 accessors like Swift, we changed the name to “hooks” to better
> indicate that one was “hooking into” the property lifecycle. However, later refinement brought
> it back down to 2 operations, get and set. That makes the “hooks” name less applicable, and
> inconsistent with what other languages call it.
>
> However, changing it back at this point would be a non-small amount of grunt work. There would
> be no functional changes from doing so, but it’s lots of renaming things both in the PR and the
> RFC. We are willing to do so if the consensus is that it would be beneficial, but want to ask before
> putting in the effort.
>
> --
> Larry Garfield
> larry@garfieldtech.com
This is a reply to Marco (https://externals.io/message/122445#122449)
for which I didn't actually receive the email but got an email from
the list that I didn't receive the email -- seems like it would have
been simpler and more correct to resend the email. That is a bit
weird, but whatever.
> Given the extensive work of this RFC, it seems pretty obvious that
> this syntax will not work, I just don't know why.
I feel like the syntax is natural, coming from other languages with
this feature. However, I really do appreciate the example Marco gives
as it feels very idiomatically PHP with all the getters/setters we are
used to writing. It also means a pretty simple "just add a space and
downcase" to switch from traditional methods to getters/setters to
hooks, which could be really nice.