1
0
mirror of synced 2025-02-02 21:41:45 +03:00

Merge pull request #1574 from Ma27/patch-1

deduplication of internal UnitOfWork methods
This commit is contained in:
Marco Pivetta 2015-12-08 19:02:28 +01:00
commit bd94931201

View File

@ -3259,41 +3259,35 @@ class UnitOfWork implements PropertyChangedListener
*/
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) {
foreach (array_merge($this->persisters, $this->collectionPersisters) as $persister) {
if ($persister instanceof CachedPersister) {
$persister->afterTransactionRolledBack();
}
}
foreach ($this->collectionPersisters as $persister) {
if ($persister instanceof CachedPersister) {
$persister->afterTransactionRolledBack();
$callback($persister);
}
}
}