Source of file MemcachedOptions.php
Size: 8,662 Bytes - Last Modified: 2014-03-12T23:21:18+01:00
/home/theseer/Downloads/ZendFramework-2.3.0/library/Zend/Cache/Storage/Adapter/MemcachedOptions.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320 | <?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\Cache\Storage\Adapter; use Memcached as MemcachedResource; use Zend\Cache\Exception; /** * These are options specific to the Memcached adapter */ class MemcachedOptions extends AdapterOptions { /** * The namespace separator * @var string */ protected $namespaceSeparator = ':'; /** * The memcached resource manager * * @var null|MemcachedResourceManager */ protected $resourceManager; /** * The resource id of the resource manager * * @var string */ protected $resourceId = 'default'; /** * Set namespace. * * The option Memcached::OPT_PREFIX_KEY will be used as the namespace. * It can't be longer than 128 characters. * * @see AdapterOptions::setNamespace() * @see MemcachedOptions::setPrefixKey() */ public function setNamespace($namespace) { $namespace = (string) $namespace; if (128 < strlen($namespace)) { throw new Exception\InvalidArgumentException(sprintf( '%s expects a prefix key of no longer than 128 characters', __METHOD__ )); } return parent::setNamespace($namespace); } /** * Set namespace separator * * @param string $namespaceSeparator * @return MemcachedOptions */ public function setNamespaceSeparator($namespaceSeparator) { $namespaceSeparator = (string) $namespaceSeparator; if ($this->namespaceSeparator !== $namespaceSeparator) { $this->triggerOptionEvent('namespace_separator', $namespaceSeparator); $this->namespaceSeparator = $namespaceSeparator; } return $this; } /** * Get namespace separator * * @return string */ public function getNamespaceSeparator() { return $this->namespaceSeparator; } /** * A memcached resource to share * * @param null|MemcachedResource $memcachedResource * @return MemcachedOptions * @deprecated Please use the resource manager instead */ public function setMemcachedResource(MemcachedResource $memcachedResource = null) { trigger_error( 'This method is deprecated and will be removed in the feature' . ', please use the resource manager instead', E_USER_DEPRECATED ); if ($memcachedResource !== null) { $this->triggerOptionEvent('memcached_resource', $memcachedResource); $resourceManager = $this->getResourceManager(); $resourceId = $this->getResourceId(); $resourceManager->setResource($resourceId, $memcachedResource); } return $this; } /** * Get memcached resource to share * * @return MemcachedResource * @deprecated Please use the resource manager instead */ public function getMemcachedResource() { trigger_error( 'This method is deprecated and will be removed in the feature' . ', please use the resource manager instead', E_USER_DEPRECATED ); return $this->resourceManager->getResource($this->getResourceId()); } /** * Set the memcached resource manager to use * * @param null|MemcachedResourceManager $resourceManager * @return MemcachedOptions */ public function setResourceManager(MemcachedResourceManager $resourceManager = null) { if ($this->resourceManager !== $resourceManager) { $this->triggerOptionEvent('resource_manager', $resourceManager); $this->resourceManager = $resourceManager; } return $this; } /** * Get the memcached resource manager * * @return MemcachedResourceManager */ public function getResourceManager() { if (!$this->resourceManager) { $this->resourceManager = new MemcachedResourceManager(); } return $this->resourceManager; } /** * Get the memcached resource id * * @return string */ public function getResourceId() { return $this->resourceId; } /** * Set the memcached resource id * * @param string $resourceId * @return MemcachedOptions */ public function setResourceId($resourceId) { $resourceId = (string) $resourceId; if ($this->resourceId !== $resourceId) { $this->triggerOptionEvent('resource_id', $resourceId); $this->resourceId = $resourceId; } return $this; } /** * Get the persistent id * * @return string */ public function getPersistentId() { return $this->getResourceManager()->getPersistentId($this->getResourceId()); } /** * Set the persistent id * * @param string $persistentId * @return MemcachedOptions */ public function setPersistentId($persistentId) { $this->triggerOptionEvent('persistent_id', $persistentId); $this->getResourceManager()->setPersistentId($this->getResourceId(), $persistentId); return $this; } /** * Add a server to the list * * @param string $host * @param int $port * @param int $weight * @return MemcachedOptions * @deprecated Please use the resource manager instead */ public function addServer($host, $port = 11211, $weight = 0) { trigger_error( 'This method is deprecated and will be removed in the feature' . ', please use the resource manager instead', E_USER_DEPRECATED ); $this->getResourceManager()->addServer($this->getResourceId(), array( 'host' => $host, 'port' => $port, 'weight' => $weight )); return $this; } /** * Set a list of memcached servers to add on initialize * * @param string|array $servers list of servers * @return MemcachedOptions * @throws Exception\InvalidArgumentException */ public function setServers($servers) { $this->getResourceManager()->setServers($this->getResourceId(), $servers); return $this; } /** * Get Servers * * @return array */ public function getServers() { return $this->getResourceManager()->getServers($this->getResourceId()); } /** * Set libmemcached options * * @param array $libOptions * @return MemcachedOptions * @link http://php.net/manual/memcached.constants.php */ public function setLibOptions(array $libOptions) { $this->getResourceManager()->setLibOptions($this->getResourceId(), $libOptions); return $this; } /** * Set libmemcached option * * @param string|int $key * @param mixed $value * @return MemcachedOptions * @link http://php.net/manual/memcached.constants.php * @deprecated Please use lib_options or the resource manager instead */ public function setLibOption($key, $value) { trigger_error( 'This method is deprecated and will be removed in the feature' . ', please use "lib_options" or the resource manager instead', E_USER_DEPRECATED ); $this->getResourceManager()->setLibOption($this->getResourceId(), $key, $value); return $this; } /** * Get libmemcached options * * @return array * @link http://php.net/manual/memcached.constants.php */ public function getLibOptions() { return $this->getResourceManager()->getLibOptions($this->getResourceId()); } /** * Get libmemcached option * * @param string|int $key * @return mixed * @link http://php.net/manual/memcached.constants.php * @deprecated Please use lib_options or the resource manager instead */ public function getLibOption($key) { trigger_error( 'This method is deprecated and will be removed in the feature' . ', please use "lib_options" or the resource manager instead', E_USER_DEPRECATED ); return $this->getResourceManager()->getLibOption($this->getResourceId(), $key); } } |