immutable
1.0.0
A biblioteca pode ser instalada em qualquer aplicativo PHP:
Composer
$ composer require phpfn/ immutable
Para acessar a biblioteca, certifique-se de incluir vendor/autoload.php
em seu arquivo.
<?php
require __DIR__ . ' /vendor/autoload.php ' ;
Para garantir a imunidade dos objetos, você só precisa agrupar qualquer código do seu método em um encerramento.
Exemplo de objeto mutável:
class Example
{
private int $ value = 42 ;
public function update ( int $ newValue ): self
{
$ this -> value = $ newValue ;
return $ this ;
}
}
Tornando-o immutable :
class Example
{
private int $ value = 42 ;
// Sample #1 (PHP 7.4+)
public function with ( int $ newValue ): self
{
return immutable ( fn () => $ this -> value = $ newValue );
}
}
Isso é tudo!