2015-08-17 17:00:26 -07:00
< ? php
namespace Doctrine\Common\Cache ;
2018-11-23 12:29:20 +00:00
use Couchbase ;
use function explode ;
use function time ;
2015-08-17 17:00:26 -07:00
/**
* Couchbase cache provider .
*
* @ link www . doctrine - project . org
2018-11-23 12:29:20 +00:00
* @ deprecated Couchbase SDK 1. x is now deprecated . Use \Doctrine\Common\Cache\CouchbaseBucketCache instead .
* https :// developer . couchbase . com / documentation / server / current / sdk / php / compatibility - versions - features . html
2015-08-17 17:00:26 -07:00
*/
class CouchbaseCache extends CacheProvider
{
2018-11-23 12:29:20 +00:00
/** @var Couchbase|null */
2015-08-17 17:00:26 -07:00
private $couchbase ;
/**
* Sets the Couchbase instance to use .
*
* @ return void
*/
public function setCouchbase ( Couchbase $couchbase )
{
$this -> couchbase = $couchbase ;
}
/**
* Gets the Couchbase instance used by the cache .
*
* @ return Couchbase | null
*/
public function getCouchbase ()
{
return $this -> couchbase ;
}
/**
* { @ inheritdoc }
*/
protected function doFetch ( $id )
{
return $this -> couchbase -> get ( $id ) ? : false ;
}
/**
* { @ inheritdoc }
*/
protected function doContains ( $id )
{
2018-11-23 12:29:20 +00:00
return $this -> couchbase -> get ( $id ) !== null ;
2015-08-17 17:00:26 -07:00
}
/**
* { @ inheritdoc }
*/
protected function doSave ( $id , $data , $lifeTime = 0 )
{
if ( $lifeTime > 30 * 24 * 3600 ) {
$lifeTime = time () + $lifeTime ;
}
return $this -> couchbase -> set ( $id , $data , ( int ) $lifeTime );
}
/**
* { @ inheritdoc }
*/
protected function doDelete ( $id )
{
return $this -> couchbase -> delete ( $id );
}
/**
* { @ inheritdoc }
*/
protected function doFlush ()
{
return $this -> couchbase -> flush ();
}
/**
* { @ inheritdoc }
*/
protected function doGetStats ()
{
$stats = $this -> couchbase -> getStats ();
$servers = $this -> couchbase -> getServers ();
2018-11-23 12:29:20 +00:00
$server = explode ( ':' , $servers [ 0 ]);
$key = $server [ 0 ] . ':11210' ;
2015-08-17 17:00:26 -07:00
$stats = $stats [ $key ];
2018-11-23 12:29:20 +00:00
return [
2015-08-17 17:00:26 -07:00
Cache :: STATS_HITS => $stats [ 'get_hits' ],
Cache :: STATS_MISSES => $stats [ 'get_misses' ],
Cache :: STATS_UPTIME => $stats [ 'uptime' ],
Cache :: STATS_MEMORY_USAGE => $stats [ 'bytes' ],
Cache :: STATS_MEMORY_AVAILABLE => $stats [ 'limit_maxbytes' ],
2018-11-23 12:29:20 +00:00
];
2015-08-17 17:00:26 -07:00
}
}