Source of file MemcacheOptions.php
Size: 7,020 Bytes - Last Modified: 2014-03-12T23:21:18+01:00
/home/theseer/Downloads/ZendFramework-2.3.0/library/Zend/Cache/Storage/Adapter/MemcacheOptions.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285 | <?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 Zend\Cache\Exception; /** * These are options specific to the Memcache adapter */ class MemcacheOptions extends AdapterOptions { /** * The namespace separator * @var string */ protected $namespaceSeparator = ':'; /** * The memcache resource manager * * @var null|MemcacheResourceManager */ protected $resourceManager; /** * The resource id of the resource manager * * @var string */ protected $resourceId = 'default'; /** * Enable compression when data is written * * @var bool */ protected $compression = false; /** * Set namespace. * * It can't be longer than 128 characters. * * @see AdapterOptions::setNamespace() * @see MemcacheOptions::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 MemcacheOptions */ 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; } /** * Set the memcache resource manager to use * * @param null|MemcacheResourceManager $resourceManager * @return MemcacheOptions */ public function setResourceManager(MemcacheResourceManager $resourceManager = null) { if ($this->resourceManager !== $resourceManager) { $this->triggerOptionEvent('resource_manager', $resourceManager); $this->resourceManager = $resourceManager; } return $this; } /** * Get the memcache resource manager * * @return MemcacheResourceManager */ public function getResourceManager() { if (!$this->resourceManager) { $this->resourceManager = new MemcacheResourceManager(); } return $this->resourceManager; } /** * Get the memcache resource id * * @return string */ public function getResourceId() { return $this->resourceId; } /** * Set the memcache resource id * * @param string $resourceId * @return MemcacheOptions */ public function setResourceId($resourceId) { $resourceId = (string) $resourceId; if ($this->resourceId !== $resourceId) { $this->triggerOptionEvent('resource_id', $resourceId); $this->resourceId = $resourceId; } return $this; } /** * Is compressed writes turned on? * * @return boolean */ public function getCompression() { return $this->compression; } /** * Set whether compressed writes are turned on or not * * @param boolean $compression * @return $this */ public function setCompression($compression) { $compression = (bool) $compression; if ($this->compression !== $compression) { $this->triggerOptionEvent('compression', $compression); $this->compression = $compression; } return $this; } /** * Sets a list of memcache servers to add on initialize * * @param string|array $servers list of servers * @return MemcacheOptions * @throws Exception\InvalidArgumentException */ public function setServers($servers) { $this->getResourceManager()->addServers($this->getResourceId(), $servers); return $this; } /** * Get Servers * * @return array */ public function getServers() { return $this->getResourceManager()->getServers($this->getResourceId()); } /** * Set compress threshold * * @param int|string|array|ArrayAccess|null $threshold * @return MemcacheOptions */ public function setAutoCompressThreshold($threshold) { $this->getResourceManager()->setAutoCompressThreshold($this->getResourceId(), $threshold); return $this; } /** * Get compress threshold * * @return int|null */ public function getAutoCompressThreshold() { return $this->getResourceManager()->getAutoCompressThreshold($this->getResourceId()); } /** * Set compress min savings option * * @param float|string|null $minSavings * @return MemcacheOptions */ public function setAutoCompressMinSavings($minSavings) { $this->getResourceManager()->setAutoCompressMinSavings($this->getResourceId(), $minSavings); return $this; } /** * Get compress min savings * * @return Exception\RuntimeException */ public function getAutoCompressMinSavings() { return $this->getResourceManager()->getAutoCompressMinSavings($this->getResourceId()); } /** * Set default server values * * @param array $serverDefaults * @return MemcacheOptions */ public function setServerDefaults(array $serverDefaults) { $this->getResourceManager()->setServerDefaults($this->getResourceId(), $serverDefaults); return $this; } /** * Get default server values * * @return array */ public function getServerDefaults() { return $this->getResourceManager()->getServerDefaults($this->getResourceId()); } /** * Set callback for server connection failures * * @param callable $callback * @return $this */ public function setFailureCallback($callback) { $this->getResourceManager()->setFailureCallback($this->getResourceId(), $callback); return $this; } /** * Get callback for server connection failures * * @return callable */ public function getFailureCallback() { return $this->getResourceManager()->getFailureCallback($this->getResourceId()); } } |