예제 #1
0
 public function testLibOptionsSet()
 {
     $options = new Cache\Storage\Adapter\MemcachedOptions();
     $options->setLibOptions(array('COMPRESSION' => false));
     $this->assertEquals($options->getLibOption(\Memcached::OPT_COMPRESSION), false);
     $memcached = new Cache\Storage\Adapter\Memcached($options);
     $this->assertEquals($memcached->getOptions()->getLibOptions(), array(\Memcached::OPT_COMPRESSION => false));
 }
예제 #2
0
 public function testOptionsSetServers()
 {
     $options = new Cache\Storage\Adapter\MemcachedOptions();
     $servers = array(array('127.0.0.1', 12345), array('localhost', 54321), array('domain.com'));
     $options->setServers($servers);
     $servers[2][1] = 11211;
     $this->assertEquals($options->getServers(), $servers);
     $memcached = new Cache\Storage\Adapter\Memcached($options);
     $this->assertEquals($memcached->getOptions()->getServers(), $servers);
 }
예제 #3
0
 /**
  * Set options.
  *
  * @param  string|Traversable|MemcachedOptions $options
  * @return Memcached
  * @see    getOptions()
  */
 public function setOptions($options)
 {
     if (!is_array($options) && !$options instanceof Traversable && !$options instanceof MemcachedOptions) {
         throw new Exception\InvalidArgumentException(sprintf('%s expects an array, a Traversable object, or a MemcachedOptions object; ' . 'received "%s"', __METHOD__, is_object($options) ? get_class($options) : gettype($options)));
     }
     if (!$options instanceof MemcachedOptions) {
         $options = new MemcachedOptions($options);
     }
     $this->options = $options;
     // Set memcached options, using options map to map to Memcached constants
     $map = $options->getOptionsMap();
     foreach ($options->toArray() as $key => $value) {
         if (!array_key_exists($key, $map)) {
             // skip keys for which there are not equivalent options
             continue;
         }
         $this->memcached->setOption($map[$key], $value);
     }
     return $this;
 }
예제 #4
0
 /**
  * Set options.
  *
  * @param  array|Traversable|MemcachedOptions $options
  * @return Memcached
  * @see    getOptions()
  */
 public function setOptions($options)
 {
     if (!$options instanceof MemcachedOptions) {
         $options = new MemcachedOptions($options);
     }
     $this->options = $options;
     // Set memcached options, using options map to map to Memcached constants
     $map = $options->getOptionsMap();
     foreach ($options->toArray() as $key => $value) {
         if (!array_key_exists($key, $map)) {
             // skip keys for which there are not equivalent options
             continue;
         }
         $this->memcached->setOption($map[$key], $value);
     }
     return $this;
 }
예제 #5
0
 /**
  * @deprecated
  */
 public function testLibOptionSet()
 {
     $options = new Cache\Storage\Adapter\MemcachedOptions();
     $deprecated = false;
     set_error_handler(function () use(&$deprecated) {
         $deprecated = true;
     }, E_USER_DEPRECATED);
     $options->setLibOption('COMPRESSION', false);
     restore_error_handler();
     $this->assertTrue($deprecated, 'Missing deprecated error');
     $this->assertEquals($options->getResourceManager()->getLibOption($options->getResourceId(), \Memcached::OPT_COMPRESSION), false);
     $memcached = new Cache\Storage\Adapter\Memcached($options);
     $this->assertEquals($memcached->getOptions()->getLibOptions(), array(\Memcached::OPT_COMPRESSION => false));
 }