/** * Obdela spremembe polj entitet */ protected function processEntities() { foreach ($this->entities as $entity) { $this->checkBaseEntity($entity); if ($this->uow->isScheduledForInsert($entity)) { // INSERT - ni sprememb $this->addChanges($entity, 'INS'); } elseif ($this->uow->isScheduledForUpdate($entity)) { // UPDATE - shrani samo spremembe $class = get_class($entity); $changes = $this->getEntityChanges($entity); foreach ($changes as $field => $change) { if ($this->isFieldTracked($class, $field)) { $this->addChanges($entity, 'UPD', [$field => $change]); } } } elseif ($this->uow->isScheduledForDelete($entity)) { // DELETE - shrani zadnje stanje entitete $data = $this->getEntityData($entity); $this->addChanges($entity, 'DEL', $data); } } }
/** * Determines whether an entity instance is managed in this EntityManager. * * @param object $entity * @return boolean TRUE if this EntityManager currently manages the given entity, FALSE otherwise. */ public function contains($entity) { return $this->_unitOfWork->isScheduledForInsert($entity) || $this->_unitOfWork->isInIdentityMap($entity) && !$this->_unitOfWork->isScheduledForDelete($entity); }