Citation :On peut transformer nos données, et si à un moment on rencontre une erreur, on peut repartir avec notre objet de base et faire autre chose.
C'est le pattern Memento; à ce compte-là, il me semble plus puissant de faire:
Code PHP :
<?php
class Chose {
// Members & Methods
}
class Memento {
private $savedMemento;
public function __construct($savedMemento) {
$this->savedMemento = clone $savedMemento;
}
/// Returns a copy of the stored object so you can restore its state
public function getCopy() {
return clone $this->savedMemento;
}
}
Ce qui n'oblige pas à passer par ce pattern: on peut altérer Chose sans être obligé de passer par le memento, et ce comportement de Memento est centralisé dans une classe.
(Pour React, j'la ramène pas: je ne connais pas ☺)