Re: [RFC] Asymmetric Visibility, with readonly
| From: | Tim Düsterhus | Date: | Thu, 01 Dec 2022 18:31:23 +0000 |
| Subject: | Re: [RFC] Asymmetric Visibility, with readonly | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-119071@lists.php.net to get a copy of this message | ||
Hi
On 11/29/22 21:29, Larry Garfield wrote:
Thank you everyone for the feedback. Based on this thread, we've made two changes to the RFC: 1. We've moved readonly back to forbidden with a-viz for now. I've added a section to Future Scope where we really should sort this out in the future, but we'll do that in the future when we can all focus on the various nuances of just that piece. 2. I rewrote the section on __set to make it clearer. That also included Ilija and I digging into all the nuances that are already present. The text may still look a bit complex, but that's because the existing logic is already complex with readonly. Long story short, the a-viz RFC does not change anything in the way __set works vis a vis asymmetric visibility; it just inherits and continues what readonly already started, so it's consistent. The PR should be updated in the next week or two with the latest changes. Baring any major need for change, we expect to call a vote for it shortly after New Years.Okay, then I'd like to officially "request" that the abbreviated form [1] is dropped: I believe 'protected(set) string $foo' is easily confused with 'protected string $foo' at a simple glance. Also any implicit rules are something developers will need to learn by heart, whereas an explicit 'public protected(set) string $foo' could reasonably be understood by someone without any PHP experience and some basic experience of OO concepts. Having two separate explicit keywords also makes it much clearer that asymmetric visibility is involved, because it's also asymmetric in the code. I believe the only benefit of the abbreviated form is saving 6 keystrokes (+ one hit to the spacebar) and I don't believe it's worth the lack of clarity for an important property of the defined property. Best regards Tim Düsterhus [1] https://wiki.php.net/rfc/asymmetric-visibility#abbreviated_form