You are here

protected function QueryFactory::deleteConfigKeyStore in Drupal 8

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Config/Entity/Query/QueryFactory.php \Drupal\Core\Config\Entity\Query\QueryFactory::deleteConfigKeyStore()

Deletes lookup data.

Parameters

\Drupal\Core\Config\Entity\ConfigEntityTypeInterface $entity_type: The entity type.

\Drupal\Core\Config\Config $config: The configuration object that is being deleted.

1 call to QueryFactory::deleteConfigKeyStore()
QueryFactory::onConfigDelete in core/lib/Drupal/Core/Config/Entity/Query/QueryFactory.php
Removes configuration entity from key store.

File

core/lib/Drupal/Core/Config/Entity/Query/QueryFactory.php, line 115

Class

QueryFactory
Provides a factory for creating entity query objects for the config backend.

Namespace

Drupal\Core\Config\Entity\Query

Code

protected function deleteConfigKeyStore(ConfigEntityTypeInterface $entity_type, Config $config) {
  $config_key_store = $this
    ->getConfigKeyStore($entity_type);
  foreach ($entity_type
    ->getLookupKeys() as $lookup_key) {
    foreach ($this
      ->getKeys($config, $lookup_key, 'getOriginal', $entity_type) as $key) {
      $values = $config_key_store
        ->get($key, []);
      $pos = array_search($config
        ->getName(), $values, TRUE);
      if ($pos !== FALSE) {
        unset($values[$pos]);
      }
      if (empty($values)) {
        $config_key_store
          ->delete($key);
      }
      else {
        $config_key_store
          ->set($key, $values);
      }
    }
  }
}