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

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to