| @@ 274-301 (lines=28) @@ | ||
| 271 | /** |
|
| 272 | * {@inheritdoc} |
|
| 273 | */ |
|
| 274 | public function removeBinding(Uuid $uuid) |
|
| 275 | { |
|
| 276 | $uuidString = $uuid->toString(); |
|
| 277 | ||
| 278 | if (!isset($this->keysByUuid[$uuidString])) { |
|
| 279 | return; |
|
| 280 | } |
|
| 281 | ||
| 282 | $key = $this->keysByUuid[$uuidString]; |
|
| 283 | ||
| 284 | if (!isset($this->bindingsByKey[$key])) { |
|
| 285 | $this->loadBindingsForKey($key); |
|
| 286 | } |
|
| 287 | ||
| 288 | foreach ($this->bindingsByKey[$key] as $i => $binding) { |
|
| 289 | if ($binding->getUuid()->equals($uuid)) { |
|
| 290 | unset($this->bindingsByKey[$key][$i]); |
|
| 291 | } |
|
| 292 | } |
|
| 293 | ||
| 294 | // Reindex array |
|
| 295 | $this->bindingsByKey[$key] = array_values($this->bindingsByKey[$key]); |
|
| 296 | ||
| 297 | unset($this->keysByUuid[$uuidString]); |
|
| 298 | ||
| 299 | $this->store->set('b:'.$key, $this->bindingsByKey[$key]); |
|
| 300 | $this->store->set('::keysByUuid', $this->keysByUuid); |
|
| 301 | } |
|
| 302 | ||
| 303 | /** |
|
| 304 | * {@inheritdoc} |
|
| @@ 448-472 (lines=25) @@ | ||
| 445 | /** |
|
| 446 | * {@inheritdoc} |
|
| 447 | */ |
|
| 448 | protected function removeBindingsWithTypeNameThatMatch($typeName, Expression $expr) |
|
| 449 | { |
|
| 450 | if (!isset($this->keysByTypeName[$typeName])) { |
|
| 451 | return; |
|
| 452 | } |
|
| 453 | ||
| 454 | $key = $this->keysByTypeName[$typeName]; |
|
| 455 | ||
| 456 | if (!isset($this->bindingsByKey[$key])) { |
|
| 457 | $this->loadBindingsForKey($key); |
|
| 458 | } |
|
| 459 | ||
| 460 | foreach ($this->bindingsByKey[$key] as $i => $binding) { |
|
| 461 | if ($expr->evaluate($binding)) { |
|
| 462 | unset($this->bindingsByKey[$key][$i]); |
|
| 463 | unset($this->keysByUuid[$binding->getUuid()->toString()]); |
|
| 464 | } |
|
| 465 | } |
|
| 466 | ||
| 467 | // Reindex array |
|
| 468 | $this->bindingsByKey[$key] = array_values($this->bindingsByKey[$key]); |
|
| 469 | ||
| 470 | $this->store->set('b:'.$key, $this->bindingsByKey[$key]); |
|
| 471 | $this->store->set('::keysByUuid', $this->keysByUuid); |
|
| 472 | } |
|
| 473 | ||
| 474 | /** |
|
| 475 | * {@inheritdoc} |
|