rfc:immutability

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
rfc:immutability [2017/09/22 13:28] – external edit 127.0.0.1rfc:immutability [2018/02/19 21:09] marijic.silvio
Line 1: Line 1:
 ====== PHP RFC: Immutable classes and properties ====== ====== PHP RFC: Immutable classes and properties ======
-  * Version: 0.1 +  * Version: 0.2 
-  * Date: 2016-08-12+  * Date: 2018-02-19
   * Author: Michal Brzuchalski <michal@brzuchalski.com>   * Author: Michal Brzuchalski <michal@brzuchalski.com>
   * Author: Silvio Marijic <marijic.silvio@gmail.com>   * Author: Silvio Marijic <marijic.silvio@gmail.com>
Line 22: Line 22:
  
 **Cons** **Cons**
-  - (Please point it out more disadvantages)+  - Currently arrays on immutable properties are not supported.
  
  
Line 84: Line 84:
 </code> </code>
  
-Resources are not allowed to be assigned to immutable properties because of fact that resourcesby natureare not immutable.+Resources are not allowed to be assigned to immutable properties because of fact that resources by nature are not immutable.
 <code php> <code php>
 class File { class File {
Line 95: Line 95:
  
 $file = new File(fopen('file.txt')); $file = new File(fopen('file.txt'));
 +</code>
 +
 +Arrays are not allowed to be assigned to immutable properties..
 +<code php>
 +class A {
 +  public immutable $x;
 +
 +  public function __construct ($x) {
 +    $this->x = $x;
 +  }
 +}
 +
 +$a = new A(['foo']);
 </code> </code>
  
Line 276: Line 289:
 ===== Proposed PHP Version(s) ===== ===== Proposed PHP Version(s) =====
  
- - PHP 7.2+ To be discussed.
  
 ===== RFC Impact ===== ===== RFC Impact =====
Line 307: Line 320:
 ===== Future Scope ===== ===== Future Scope =====
  
 +Add support for arrays on immutable properties.
 +Expand immutability to regular variables also.
  
 ===== Proposed Voting Choices ===== ===== Proposed Voting Choices =====
Line 314: Line 329:
  
 ===== Patches and Tests ===== ===== Patches and Tests =====
-[[https://github.com/php/php-src/compare/master...brzuchal:immutable]]+[[https://github.com/php/php-src/compare/master...smarijic:immutable-rfc]]
  
  
rfc/immutability.txt · Last modified: 2018/02/20 11:19 by marijic.silvio