/vendor/ZF2/library/Zend/Cache/Storage/Adapter/MemcachedOptions.php
https://bitbucket.org/zbahij/eprojets_app · PHP · 319 lines · 147 code · 31 blank · 141 comment · 6 complexity · 19fc7d3ffa895133fbaa54d11a15f4fc MD5 · raw file
- <?php
- /**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2013 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 APC 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->getPersistentId(), $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);
- }
- }