You are here

public function SessionBasedTempStore::delete in Session Based Temporary Storage 8

Deletes data from the store for a given key and releases the lock on it.

Parameters

string $key: The key of the data to delete.

Return value

bool TRUE if the object was deleted or does not exist, FALSE if it exists but is not owned by $this->owner.

Throws

\Drupal\Core\TempStore\TempStoreException Thrown when a lock for the backend storage could not be acquired.

File

src/SessionBasedTempStore.php, line 235

Class

SessionBasedTempStore
Stores and retrieves temporary data for a given owner.

Namespace

Drupal\session_based_temp_store

Code

public function delete($key) {
  $key = $this
    ->createkey($key);
  if (!($object = $this->storage
    ->get($key))) {
    return TRUE;
  }
  elseif ($object->owner != $this
    ->getOwner()) {
    return FALSE;
  }
  if (!$this->lockBackend
    ->acquire($key)) {
    $this->lockBackend
      ->wait($key);
    if (!$this->lockBackend
      ->acquire($key)) {
      throw new TempStoreException("Couldn't acquire lock to delete item '{$key}' from '{$this->storage->getCollectionName()}' session based temporary storage.");
    }
  }
  $this->storage
    ->delete($key);
  $this->lockBackend
    ->release($key);
  return TRUE;
}