> Having a "readonly" class where the properties are read-only by default makes sense to me, but maybe the better way to do it is with an attribute?
We already have such an attribute provided. It is called [`#[Immutable]`]( https://blog.jetbrains.com/phpstorm/2020/10/phpstorm-2020-3-eap-4/#immutable ). If the intention is to add some logic for attributes, then unlikely it is going to be accepted because attributes by definition are meta-data. It doesn't add any logic for program. On Sat, Jul 17, 2021 at 12:09 AM Mike Schinkel <m...@newclarity.net> wrote: > > On Jul 16, 2021, at 6:12 AM, Bruce Weirdan <weir...@gmail.com> wrote: > > > > On Fri, Jul 16, 2021 at 9:45 AM Eugene Sidelnyk <zsidel...@gmail.com> > wrote: > > > >> Readonly properties are really useful for DDD, where everything is > going to > >> be immutable. It promotes best practices. However for people to use it, > >> syntax should be concise and brief. > > > > If every property of the class is readonly it would probably be better > > to declare that with a class modifier. > > > > E.g. > > > > ```php > > readonly class Entity { > > public int $count; > > public string $data; > > } > > ``` > > Having a "readonly" class where the properties are read-only by default > makes sense to me, but maybe the better way to do it is with an attribute? > > #[Readonly] > class Entity { > public int $count; > public string $data; > } > > OTOH, that would be inconsistent with using `readonly` as a keyword for > properties. > > -Mike > P.S. Maybe readonly properties should be implemented with an attribute > instead of a keyword? But then that would be opening a can of worms... > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: https://www.php.net/unsub.php > >