Re: [RFC] Readonly property hooks
| From: | Nick | Date: | Fri, 11 Jul 2025 04:44:15 +0000 |
| Subject: | Re: [RFC] Readonly property hooks | ||
| References: | 1 2 3 4 5 6 7 8 9 10 11 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-128003@lists.php.net to get a copy of this message | ||
Hey Eric,
> On 11. Jul 2025, at 10:08, Eric Norris <eric.t.norris@gmail.com> wrote:
>
> Regarding the caching option suggested elsewhere, the semantics
> mentioned seem confusing to me. The body is called on subsequent gets,
> but only the value from the first get is returned? I would expect that
> would be very confusing to developers. If the body wasn't executed on
> subsequent invocations that might make more sense to me, but then the
> get hook essentially is an init hook, and why not call it as such.
I just before pushed a third implementation idea which addresses this.
It also no longer requires a separate cache. It uses the store itself.
A link to the branch is in the description of the original PR.
> Also, just to throw the idea out there - maybe start with init hooks
> *only* for readonly properties? Is there something to this, especially
> if you consider "readonly" actually "writeonce"? Maybe this plus
> disallowing set hooks?
Personally, I don’t see added value in adding yet another hook
init.
I also don’t see how this would solve the get hook issue?
As a user I want to be able to have a get hook in readonly classes. For instance, for
formatting.
In my last answer to Tim I showed an example of what I would expect from readonly
properties.
Cheers,
Nick