Source of file CachedDataSource.php
Size: 1,281 Bytes - Last Modified: 2021-12-24T06:51:21+00:00
/var/www/docs.ssmods.com/process/src/src/DataSource/CachedDataSource.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | <?php namespace Heyday\SilverStripeRedirects\Source\DataSource; use Heyday\SilverStripeRedirects\Source\DataSourceInterface; use Heyday\SilverStripeRedirects\Source\CacheableDataSourceInterface; class CachedDataSource implements DataSourceInterface { /** @var \Heyday\SilverStripeRedirects\Source\CacheableDataSourceInterface */ protected $dataSource; /** @var \Doctrine\Common\Cache\CacheProvider */ protected $cache; /** * @param CacheableDataSourceInterface $dataSource * @param \Doctrine\Common\Cache\CacheProvider $cache */ public function __construct(CacheableDataSourceInterface $dataSource, $cache) { $this->dataSource = $dataSource; $this->cache = $cache; } /** * @return \Heyday\SilverStripeRedirects\Source\Redirect[] */ public function get() { $key = $this->dataSource->getKey(); if (!$result = $this->cache->fetch($key)) { $this->cache->save( $key, $result = $this->dataSource->get() ); } return $result; } /** * Delete the cached version * @return void */ public function delete() { $this->cache->delete($this->dataSource->getKey()); } } |