Şöyle bir kod var:
function foobar(array& $objects, $con = null)
{
if (is_null($con))
$con = DbSingleton::getConnectio();
$con->beginTransaction(); // <- question 1
try
{
foreach($objects as $object)
{
// allocate memory for new object
$new_obj = new MyShiningNewObject();
// do something to the new object ...
$new_obj->setParentId($object->getId());
$new_obj->save($con);
// mark for garbage collection
unset($new_obj); // <- question 2
}
$con->commit();
}
catch(Exception $e){ $con->rollBack(); }
}
Benim sorular şunlardır:
Ben bu iyi bir iç içe geçmiş işlem olabilir, bir işlem Yürürlükten duyuyorum. Iç içe bir işlem durumunda, bir istisna atılır ve ben geri alma go (dıştaki işlem için) geri yapar ne kadar, geri alma ise - sağduyu bu durumda olması gerektiğini önermek, ama kimse anlamaz.
Ben (Zend GC tarafından 'freeable' olarak işaretleme, ok) bellek boşaltarak duyuyorum. Ben döngü SONRA işlem uygulanıyor olduğum için, (değişken döngü IN frreable olarak işaretlenmiş), bu güvenli - Ben değeri geldiğini unset değişken olsa bile verileri güvenle db saklanır demek?