src/ObjectManager.php
public function setObjectState($object, $state)
    {
        if (is_object($object)) {
            $oid = spl_object_hash($object);
            $repository = $this->objectsRepository[$oid];
            $data = $repository->getHydrator()->unhydrate($object);
            $id = isset($data['_id']) ? serialize($data['_id']) . $repository->getCollection() : $oid;
        } else {
            return false;
        }

        if (!isset($this->objectStates[$id]) && !isset($this->objectStates[$oid])) {
            throw new Exception\StateException();
        }

        if (!in_array($state, [self::OBJ_MANAGED, self::OBJ_NEW, self::OBJ_REMOVED])) {
            throw new Exception\StateException("Invalid state '$state'");
        }

        if ($state == self::OBJ_REMOVED && isset($this->objectStates[$oid]) && $this->objectStates[$oid] == self::OBJ_NEW) {
            throw new Exception\StateException("Can't change state to removed because object is not managed. Insert it in database before");
        }

        if (isset($this->objectStates[$oid])) {
            unset($this->objectStates[$oid]);
            unset($this->objects[$oid]);
        }

        $this->objectStates[$id] = $state;
        $this->objects[$id] = $object;

        return true;
    }
public function setObjectState($object, $state)
    {
        if (is_object($object)) {
            $oid = spl_object_hash($object);
            $repository = $this->objectsRepository[$oid];
            $data = $repository->getHydrator()->unhydrate($object);
            $id = isset($data['_id']) ? serialize($data['_id']) . $repository->getCollection() : $oid;
        } else {
            return false;
        }

        if (!isset($this->objectStates[$id]) && !isset($this->objectStates[$oid])) {
            throw new Exception\StateException();
        }

        if (!in_array($state, [self::OBJ_MANAGED, self::OBJ_NEW, self::OBJ_REMOVED])) {
            throw new Exception\StateException("Invalid state '$state'");
        }

        if ($state == self::OBJ_REMOVED && isset($this->objectStates[$oid]) && $this->objectStates[$oid] == self::OBJ_NEW) {
            throw new Exception\StateException("Can't change state to removed because object is not managed. Insert it in database before");
        }

        if (isset($this->objectStates[$oid])) {
            unset($this->objectStates[$oid]);
            unset($this->objects[$oid]);
        }

        $this->objectStates[$id] = $state;
        $this->objects[$id] = $object;

        return true;
    }
public function setObjectState ( $ object , $ state ) { if ( is_object ( $ object ) ) { $ oid = spl_object_hash ( $ object ) ; $ repository = $ this -> objectsRepository [ $ oid ] ; $ data = $ repository -> getHydrator ( ) -> unhydrate ( $ object ) ; $ id = isset ( $ data [ '_id' ] ) ? serialize ( $ data [ '_id' ] ) . $ repository -> getCollection ( ) : $ oid ; } else { return false ; } if ( ! isset ( $ this -> objectStates [ $ id ] ) && ! isset ( $ this -> objectStates [ $ oid ] ) ) { throw new Exception \ StateException ( ) ; } if ( ! in_array ( $ state , [ self :: OBJ_MANAGED , self :: OBJ_NEW , self :: OBJ_REMOVED ] ) ) { throw new Exception \ StateException ( "Invalid state '$state'" ) ; } if ( $ state == self :: OBJ_REMOVED && isset ( $ this -> objectStates [ $ oid ] ) && $ this -> objectStates [ $ oid ] == self :: OBJ_NEW ) { throw new Exception \ StateException ( "Can't change state to removed because object is not managed. Insert it in database before" ) ; } if ( isset ( $ this -> objectStates [ $ oid ] ) ) { unset ( $ this -> objectStates [ $ oid ] ) ; unset ( $ this -> objects [ $ oid ] ) ; } $ this -> objectStates [ $ id ] = $ state ; $ this -> objects [ $ id ] = $ object ; return true ; }
Update object state

@param   mixed   $object     Object to change state
@param   int     $state      New state
@return  void
Update object state