public function testArrayAccess() { $this->collection[] = $this->server1; $this->collection[] = $this->server2; $this->assertSame(array('server1' => $this->server1, 'server2' => $this->server2), $this->collection->toArray()); $this->assertSame($this->server1, $this->collection['server1']); $this->assertSame($this->server2, $this->collection['server2']); $this->assertTrue(isset($this->collection['server1'])); $this->assertFalse(isset($this->collection['foobar'])); unset($this->collection['server2']); unset($this->collection['foobar']); $this->assertSame(array('server1' => $this->server1), $this->collection->toArray()); }
/** * {@inheritdoc} */ public function removeServers(Expression $expr) { $this->assertServersLoaded(); $previousServers = $this->servers->toArray(); $previousData = $this->serversData; $save = false; foreach ($this->servers as $server) { if ($server->match($expr)) { $this->servers->remove($server->getName()); unset($this->serversData[$server->getName()]); $save = true; } } if (!$save) { return; } try { $this->persistServersData(); } catch (Exception $e) { $this->servers->replace($previousServers); $this->serversData = $previousData; throw $e; } }