113 lines
2.2 KiB
PHP
113 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace Caxy\HtmlDiff;
|
|
|
|
use Doctrine\Common\Cache\Cache;
|
|
|
|
/**
|
|
* Class DiffCache
|
|
* @package Caxy\HtmlDiff
|
|
*/
|
|
class DiffCache
|
|
{
|
|
/**
|
|
* @var Cache
|
|
*/
|
|
protected $cacheProvider;
|
|
|
|
/**
|
|
* DiffCache constructor.
|
|
*
|
|
* @param Cache $cacheProvider
|
|
*/
|
|
public function __construct(Cache $cacheProvider)
|
|
{
|
|
$this->cacheProvider = $cacheProvider;
|
|
}
|
|
|
|
/**
|
|
* @return Cache
|
|
*/
|
|
public function getCacheProvider()
|
|
{
|
|
return $this->cacheProvider;
|
|
}
|
|
|
|
/**
|
|
* @param Cache $cacheProvider
|
|
*
|
|
* @return DiffCache
|
|
*/
|
|
public function setCacheProvider($cacheProvider)
|
|
{
|
|
$this->cacheProvider = $cacheProvider;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @param string $oldText
|
|
* @param string $newText
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function contains($oldText, $newText)
|
|
{
|
|
return $this->cacheProvider->contains($this->getHashKey($oldText, $newText));
|
|
}
|
|
|
|
/**
|
|
* @param string $oldText
|
|
* @param string $newText
|
|
*
|
|
* @return string
|
|
*/
|
|
public function fetch($oldText, $newText)
|
|
{
|
|
return $this->cacheProvider->fetch($this->getHashKey($oldText, $newText));
|
|
}
|
|
|
|
/**
|
|
* @param string $oldText
|
|
* @param string $newText
|
|
* @param string $data
|
|
* @param int $lifeTime
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function save($oldText, $newText, $data, $lifeTime = 0)
|
|
{
|
|
return $this->cacheProvider->save($this->getHashKey($oldText, $newText), $data, $lifeTime);
|
|
}
|
|
|
|
/**
|
|
* @param string $oldText
|
|
* @param string $newText
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function delete($oldText, $newText)
|
|
{
|
|
return $this->cacheProvider->delete($this->getHashKey($oldText, $newText));
|
|
}
|
|
|
|
/**
|
|
* @return array|null
|
|
*/
|
|
public function getStats()
|
|
{
|
|
return $this->cacheProvider->getStats();
|
|
}
|
|
|
|
/**
|
|
* @param string $oldText
|
|
* @param string $newText
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function getHashKey($oldText, $newText)
|
|
{
|
|
return sprintf('%s_%s', md5($oldText), md5($newText));
|
|
}
|
|
}
|