Doctrine php オブジェクトがたくさんあり、次のようなものを呼び出しています
$myObj = $query->execute()->getFirst();
$myObj->setName('a new name');
$myObj->setAge('40');
$myObj->save();
など...など...
そして、ある時点でエラーが発生した場合は、save() 関数を既に呼び出しており、新しいプロパティをデータベースに伝達しているため、これらのプロパティの変更をすべて元に戻したいと考えています。
オブジェクトの古い値を保存する方法と、元に戻すために呼び出すメソッドを考えたいと思います。何かのようなもの:
$undoCollection = array();
$undoObject = array();
$undoObject['revertFunction'] = $myObj->setName;
$undoObject['revertValue'] = 18;
array_push($undoCollection,$undoObject)
そのため、後で何か問題が発生した場合は、$undoCollection をループできます。
foreach($undoCollection as $undoObj)
{
$undoObj['revertFunction']($undoObj['revertValue']);
}
これはPHPで可能なことですか?または、その機能を提供できるものは他にありますか?