If the store does not contain the key, this method returns false.
Any integer or string value is accepted as key. If any other type is
passed for the key, an {@link InvalidKeyException} is thrown. You should
make sure that you only pass valid keys to the store.
If the backend of the store cannot be written, a {@link WriteException}
is thrown. You should always handle this exception in your code:
php
try {
$store->remove($key);
} catch (WriteException $e) {
write failed
}
private function syncBindingsForKey($key) { if (count($this->bindingsByKey[$key]) > 0) { $this->store->set('b:' . $key, $this->bindingsByKey[$key]); } else { unset($this->bindingsByKey[$key]); $this->store->remove('b:' . $key); } }
/** * {@inheritdoc} */ protected function removeBindingsWithTypeName($typeName) { if (!isset($this->keysByTypeName[$typeName])) { return; } $key = $this->keysByTypeName[$typeName]; if (!isset($this->bindingsByKey[$key])) { // no initialize, since we're removing this anyway $this->loadBindingsForKey($key, false); } foreach ($this->bindingsByKey[$key] as $binding) { unset($this->keysByUuid[$binding->getUuid()->toString()]); } unset($this->bindingsByKey[$key]); $this->store->remove('b:' . $key); $this->store->set('::keysByUuid', $this->keysByUuid); }
/** * {@inheritdoc} */ public function purge($path) { $this->store->remove($path); }
/** * {@inheritdoc} */ public function remove($key) { $this->store->remove($key); }
/** * {@inheritdoc} */ protected function removeBinding($id) { unset($this->bindings[$id]); $this->store->remove($id); }