Hi Silvio,

Look into my talk about final properties https://marc.info/?
t=145979255800003&r=1&w=2 maybe there would be something usefull.
There is also talk about mutable and immutable properties and other class
modifiers also about var and val.
I'm not sure that it should be class midifier rather than proprty modifier
keyword.

regards,
--
Michał Brzuchalski

2016-08-08 12:31 GMT+02:00 Silvio Marijić <marijic.sil...@gmail.com>:

> Hi,
>
> I would need your help with one idea. I'm working on one RFC that I'm would
> like to submit. Idea is that after you initialize object eg. after
> constructor returns, object would be locked, and you wouldn't be able to
> change properties on that object anymore. It would like this:
>
> <?php
>
> immutable class Email {
> >      public $email;
> >      public function __construct($email){
> >          $this->email = $email;
> >      }
> > }
> > $email = new Email("exam...@email.com");
>
>
>
> After instance of class is created, object is "frozen" so call like this
>
> $email->email = "n...@email.com";
>
>
> Would result in error.
>
> I have already implementation up to certain degree, but I need one advice
> from more experienced developers. Where is the place where I could put
> logic to lock object after the constructor has finished? Maybe in zend vm
> on ZEND_NEW token?
>
> Some constraints are needed:
>
>    1. Child class that extends immutable class must be defined as immutable
>    also.
>    2. If property on immutable class contains object, it must be instance
>    of immutable class.
>    3. You can not have immutability per property, it either whole class or
>    none.
>
> Thank you all in advance.
>
> --
> Silvio Marijić
> Software Engineer
> 2e Systems
>



-- 
pozdrawiam
--
Michał Brzuchalski

Reply via email to