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

Final work around entity changeset fix

This commit is contained in:
Guilherme Blanco 2016-02-16 05:03:11 +00:00
parent b784a04cf7
commit 9b4c50e81e
2 changed files with 19 additions and 13 deletions

View File

@ -515,15 +515,16 @@ class UnitOfWork implements PropertyChangedListener
*
* @return array
*/
public function getEntityChangeSet($entity)
public function & getEntityChangeSet($entity)
{
$oid = spl_object_hash($entity);
$oid = spl_object_hash($entity);
$data = array();
if (isset($this->entityChangeSets[$oid])) {
return $this->entityChangeSets[$oid];
if (!isset($this->entityChangeSets[$oid])) {
return $data;
}
return array();
return $this->entityChangeSets[$oid];
}
/**
@ -1048,9 +1049,7 @@ class UnitOfWork implements PropertyChangedListener
}
if ($preUpdateInvoke != ListenersInvoker::INVOKE_NONE) {
$changeset = $this->getEntityChangeSet($entity);
$this->listenersInvoker->invoke($class, Events::preUpdate, $entity, new PreUpdateEventArgs($entity, $this->em, $changeset), $preUpdateInvoke);
$this->listenersInvoker->invoke($class, Events::preUpdate, $entity, new PreUpdateEventArgs($entity, $this->em, $this->getEntityChangeSet($entity)), $preUpdateInvoke);
$this->recomputeSingleEntityChangeSet($class, $entity);
}

View File

@ -22,18 +22,25 @@ class UnitOfWorkMock extends \Doctrine\ORM\UnitOfWork
*/
public function getEntityPersister($entityName)
{
return isset($this->_persisterMock[$entityName]) ?
$this->_persisterMock[$entityName] : parent::getEntityPersister($entityName);
return isset($this->_persisterMock[$entityName])
? $this->_persisterMock[$entityName]
: parent::getEntityPersister($entityName);
}
/**
* {@inheritdoc}
*/
public function getEntityChangeSet($entity)
public function & getEntityChangeSet($entity)
{
$oid = spl_object_hash($entity);
return isset($this->_mockDataChangeSets[$oid]) ?
$this->_mockDataChangeSets[$oid] : parent::getEntityChangeSet($entity);
if (isset($this->_mockDataChangeSets[$oid])) {
return $this->_mockDataChangeSets[$oid];
}
$data = parent::getEntityChangeSet($entity);
return $data;
}
/* MOCK API */