/** * Remove the item at absPath from local cache and keep information for undo. * * @param string $absPath The absolute path of the item that is being * removed. Note that contrary to removeItem(), this path is the full * path for a property too. * @param PropertyInterface $property The item that is being removed * @param bool $sessionOperation whether the property removal should be * dispatched immediately or needs to be scheduled in the operations log * * @see ObjectManager::removeItem() */ protected function performPropertyRemove($absPath, PropertyInterface $property, $sessionOperation = true) { if ($sessionOperation) { if ($property->isNew()) { return; } // keep reference to object in case of refresh $operation = new RemovePropertyOperation($absPath, $property); $this->propertiesRemove[$absPath] = $operation; $this->operationsLog[] = $operation; return; } // this is no session operation $this->transport->deletePropertyImmediately($absPath); }