Same name in this branch
  1. 10 core/lib/Drupal/Core/Config/DatabaseStorage.php \Drupal\Core\Config\DatabaseStorage::deleteAll()
  2. 10 core/lib/Drupal/Core/KeyValueStore/DatabaseStorage.php \Drupal\Core\KeyValueStore\DatabaseStorage::deleteAll()
Same name and namespace in other branches
  1. 8.9.x core/lib/Drupal/Core/Config/DatabaseStorage.php \Drupal\Core\Config\DatabaseStorage::deleteAll()
  2. 9 core/lib/Drupal/Core/Config/DatabaseStorage.php \Drupal\Core\Config\DatabaseStorage::deleteAll()

Deletes configuration objects whose names start with a given prefix.

Given the following configuration object names:

  • node.type.article
  • node.type.page

Passing the prefix 'node.type.' will delete the above configuration objects.

Parameters

string $prefix: (optional) The prefix to search for. If omitted, all configuration objects that exist will be deleted.

Return value

bool TRUE on success, FALSE otherwise.

Overrides StorageInterface::deleteAll

File

core/lib/Drupal/Core/Config/DatabaseStorage.php, line 301

Class

DatabaseStorage
Defines the Database storage.

Namespace

Drupal\Core\Config

Code

public function deleteAll($prefix = '') {
  try {

    // @todo Remove the 'return' option in Drupal 11.
    // @see https://www.drupal.org/project/drupal/issues/3256524
    $options = [
      'return' => Database::RETURN_AFFECTED,
    ] + $this->options;
    return (bool) $this->connection
      ->delete($this->table, $options)
      ->condition('name', $prefix . '%', 'LIKE')
      ->condition('collection', $this->collection)
      ->execute();
  } catch (\Exception $e) {
    if ($this->connection
      ->schema()
      ->tableExists($this->table)) {
      throw $e;
    }

    // If we attempt a delete without actually having the table available,
    // return false so the caller can handle it.
    return FALSE;
  }
}