Skip to content

Commit

Permalink
Merge pull request #1574 from Ma27/patch-1
Browse files Browse the repository at this point in the history
deduplication of internal UnitOfWork methods
  • Loading branch information
Ocramius committed Dec 8, 2015
2 parents 3c3b736 + f840f0d commit bd94931
Showing 1 changed file with 17 additions and 23 deletions.
40 changes: 17 additions & 23 deletions lib/Doctrine/ORM/UnitOfWork.php
Original file line number Diff line number Diff line change
Expand Up @@ -3259,41 +3259,35 @@ public function isReadOnly($object)
*/
private function afterTransactionComplete()
{
if ( ! $this->hasCache) {
return;
}

foreach ($this->persisters as $persister) {
if ($persister instanceof CachedPersister) {
$persister->afterTransactionComplete();
}
}

foreach ($this->collectionPersisters as $persister) {
if ($persister instanceof CachedPersister) {
$persister->afterTransactionComplete();
}
}
$this->performCallbackOnCachedPersister(function (CachedPersister $persister) {
$persister->afterTransactionComplete();
});
}

/**
* Perform whatever processing is encapsulated here after completion of the rolled-back.
*/
private function afterTransactionRolledBack()
{
$this->performCallbackOnCachedPersister(function (CachedPersister $persister) {
$persister->afterTransactionRolledBack();
});
}

/**
* Performs an action after the transaction.
*
* @param callable $callback
*/
private function performCallbackOnCachedPersister(callable $callback)
{
if ( ! $this->hasCache) {
return;
}

foreach ($this->persisters as $persister) {
if ($persister instanceof CachedPersister) {
$persister->afterTransactionRolledBack();
}
}

foreach ($this->collectionPersisters as $persister) {
foreach (array_merge($this->persisters, $this->collectionPersisters) as $persister) {
if ($persister instanceof CachedPersister) {
$persister->afterTransactionRolledBack();
$callback($persister);
}
}
}
Expand Down

0 comments on commit bd94931

Please sign in to comment.