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

View File

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