コード例 #1
0
 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());
 }
コード例 #2
0
 /**
  * {@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;
     }
 }