我有一堆 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 中是可能的吗?还是有其他东西可以提供该功能?