Source of file ContentFilter.php
Size: 1,500 Bytes - Last Modified: 2021-12-23T10:36:17+00:00
/var/www/docs.ssmods.com/process/src/src/Filters/ContentFilter.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | <?php namespace SilverStripe\VersionFeed\Filters; use SilverStripe\VersionFeed\VersionFeedController; use SilverStripe\Core\Config\Configurable; use Psr\SimpleCache\CacheInterface; use SilverStripe\Core\Injector\Injector; /** * Conditionally executes a given callback, attempting to return the desired results * of its execution. */ abstract class ContentFilter { use Configurable; /** * Nested content filter * * @var ContentFilter */ protected $nestedContentFilter; /** * Cache lifetime * * @config * @var int */ private static $cache_lifetime = 300; public function __construct($nestedContentFilter = null) { $this->nestedContentFilter = $nestedContentFilter; } /** * Gets the cache to use * * @return CacheInterface */ protected function getCache() { return Injector::inst()->get( CacheInterface::class . '.VersionFeedController' ); } /** * Evaluates the result of the given callback * * @param string $key Unique key for this * @param callable $callback Callback for evaluating the content * @return mixed Result of $callback() */ public function getContent($key, $callback) { if ($this->nestedContentFilter) { return $this->nestedContentFilter->getContent($key, $callback); } else { return call_user_func($callback); } } } |