> Perhaps another option could be to use attributes:
>
>  <<ReadOnly>>
>  public int $id;


I’d actually also like a syntax like that as well for ReadOnly and
Immutable in the end.
It's more readable and it would be possible to annotate on the class level
as well (to affect all properties).

So I initially explored* in this direction, however if we go that way first
we'll likely end up with any reflection code
having to deal with attributes and understand their underlying visibility
semantics.

If we rather go this route of first introducing the concept of disconnected
visibility. The reflection API is
far clearer / understandable, more future proof, and adding the attributes
as immediate syntax sugar
followup is far more straightforward.

* initial explorative draft rfc:
https://wiki.php.net/rfc/readonly_and_immutable_properties

Reply via email to