On Fri, Aug 5, 2022, 12:09 PM Larry Garfield <la...@garfieldtech.com> wrote:

> Ilija Tovilo and I are happy to present the first new RFC for PHP 8.3:
> Asymmetric Visibility.
>
> https://wiki.php.net/rfc/asymmetric-visibility
>
> Details are in the RFC, but it's largely a copy of Swift's support for the
> same.
>

I have two comments:

- For reflection purposes, having two separate methods feels like it will
be cumbersome; you'd need to check both to determine if you'd need to make
the reflection property accessible before changing the value. An
isPublicSet() would alleviate that, or potentially a getSetFlags() method
against which you could apply a bit mask. You'd need to add a constant for
public set I both cases.

- The number of items that appear to the left of a property is growing,
making understanding a declaration increasingly difficult, and your
discussion of future scope indicates that this is likely to get worse. I'm
wondering if this sort of behavior could be indicated via attributes
instead? Something like `#[PropertySetBehavior(PROPERTY_SET_PRIVATE)]`.
Attributes have the benefit of being separate from the property
declaration, arguably more readable (one per line), and composable. This
might play into some of the future scope items as well.

Overall, though, love the design simplicity!


> --
>   Larry Garfield
>   la...@garfieldtech.com
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: https://www.php.net/unsub.php
>
>

Reply via email to