protected function QueryFactory::deleteConfigKeyStore

protected QueryFactory::deleteConfigKeyStore(ConfigEntityTypeInterface $entity_type, Config $config)

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.

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);
      }
    }
  }
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Config!Entity!Query!QueryFactory.php/function/QueryFactory::deleteConfigKeyStore/8.1.x