Hi Michał,

First of all: +1 to this: very useful for value objects!

A few questions:

 * can you re-declare a final property in a sub-class, making it therefore
non-final? (I have reasons to do that, related with altering states via
mappers)
 * do we want to use `final`, or `immutable` for these properties? `final`
seems to just be a confusing term here.
 * is this feature portable to variables in general? I realize that adding
metadata to ZVals has huge performance implications, but it would be
interesting to do that for performance improvements further down the line

Cheers,


Marco Pivetta

http://twitter.com/Ocramius

http://ocramius.github.com/

On 4 April 2016 at 19:53, Michał Brzuchalski <mic...@brzuchalski.com> wrote:

> Hey Internals,
>
> I'm new here. I've been wondering / working on adding final properties into
> PHP lang.
>
> This work started once I had the time to read the "Core Java for
> Impateient" by Cay S. Horstmann
> and found it very usefull to have final properties like Java.
>
> Those properties differ than `const` because they can be set at runtime -
> but only once in their lifetime.
> Such properties could be very usefull in Singletons, ValueObjects etc. impl
> like:
>
> class Money {
>     public final $amount;
>     public final $currency;
>     public function __constructor($amount, $currency) {
>         $this->amount = $amount;
>         $this->currency = $currency;
>     }
> }
>
> In above example there is even no need for getter because those properties
> are immutable through
> the final keyword, it means those properties cannot change their references
> just like in Java
> https://en.wikipedia.org/wiki/Final_(Java)
>
> I've already started some impl on own fork
> https://github.com/php/php-src/compare/master...brzuchal:final-properties
> I've got some basics in C programming, don't know yet if I can impl it
> complex.
>
> I was wondering if it is usefull in yours opinion or is it only my
> impression.
>
> I can provide an RFC if it sounds usefull and if I get Wiki karma
>
> Thanks
> --
> Michał Brzuchalski (aka brzuchal)
>

Reply via email to