/** * @return \MailSo\Cache\CacheClient */ public function Cacher() { if (null === $this->oCacher) { $this->oCacher = \MailSo\Cache\CacheClient::NewInstance(); $oDriver = null; $sDriver = \strtoupper(\trim($this->Config()->Get('cache', 'fast_cache_driver', 'files'))); switch (true) { case 'APC' === $sDriver && \MailSo\Base\Utils::FunctionExistsAndEnabled('apc_store'): $oDriver = \MailSo\Cache\Drivers\APC::NewInstance(); break; case 'MEMCACHE' === $sDriver && \MailSo\Base\Utils::FunctionExistsAndEnabled('memcache_connect'): case 'MEMCACHED' === $sDriver && \MailSo\Base\Utils::FunctionExistsAndEnabled('memcache_connect'): $oDriver = \MailSo\Cache\Drivers\Memcache::NewInstance($this->Config()->Get('labs', 'fast_cache_memcache_host', '127.0.0.1'), (int) $this->Config()->Get('labs', 'fast_cache_memcache_port', 11211)); break; default: $oDriver = \MailSo\Cache\Drivers\File::NewInstance(APP_PRIVATE_DATA . 'cache'); break; } if ($oDriver) { $this->oCacher->SetDriver($oDriver); } $this->oCacher->SetCacheIndex($this->Config()->Get('cache', 'fast_cache_index', '')); } return $this->oCacher; }