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