PHP Class Jarves\Cache\ResponseCacher

Show file Open project: jarves/jarves

Public Methods

Method Description
__construct ( Jarves $jarves, PageStack $pageStack, Cacher $cacher, Symfony\Component\Templating\EngineInterface $templating, PageResponseFactory $pageResponseFactory )
getViewMTime ( string $view ) : mixed
renderCached ( string $cacheKey, string $view, array | callable $data = null ) : string Returns a rendered view. If we find data behind the given cache it uses this data instead of calling $data. So this function does not cache the whole rendered html. To do so use renderFullCache().
renderFullCached ( string $cacheKey, string $view, array | callable $data = null, integer $lifeTime = null, boolean $force = false ) : string Returns a rendered view. If we find html behind the given cache it returns this directly. This is a couple os ms faster than renderCached since the template engine is never used when there's a valid cache.

Method Details

__construct() public method

public __construct ( Jarves $jarves, PageStack $pageStack, Cacher $cacher, Symfony\Component\Templating\EngineInterface $templating, PageResponseFactory $pageResponseFactory )
$jarves Jarves\Jarves
$pageStack Jarves\PageStack
$cacher Cacher
$templating Symfony\Component\Templating\EngineInterface
$pageResponseFactory Jarves\PageResponseFactory

getViewMTime() public method

public getViewMTime ( string $view ) : mixed
$view string
return mixed

renderCached() public method

In this cache method, the template engine is always called. If you want to cache this as well, use renderFullCached(). Example: return $this->renderCache('myCache', 'plugin1/default.tpl', function(){ return array('items' => heavyDbQuery()); }); Note: The $data callable is only called if the cache needs to regenerate (when it has been invalidated or empty, or the view file changed). If the callable $data returns NULL, then this will return NULL, too.
See also: method `render` to get more information.
public renderCached ( string $cacheKey, string $view, array | callable $data = null ) : string
$cacheKey string
$view string
$data array | callable Pass the data as array or a data provider function.
return string

renderFullCached() public method

Example: return $this->renderFullCached('myCache', 'plugin1/default.tpl', function(){ return array('items' => heavyDbQuery()); }); Note: The $data callable is only called if the cache needs to regenerate (when it has been invalidated or empty, or the view file changed). If the callable $data returns NULL, then this will return NULL, too, without entering the actual rendering process. You should use this method in your plugins instead of writing your own cache mechanism, because this method handles PageResponse merging. Means: If templates used in this $view are changing somehow the PageResponse ({{loadAsset('style.css')}} calls) then this information (diff to current PageResponse) is stored and restored when we found a html cache. The diff is beside the actual rendered HTML also stored in the cache to keep this possible.
See also: method `render` to get more information.
public renderFullCached ( string $cacheKey, string $view, array | callable $data = null, integer $lifeTime = null, boolean $force = false ) : string
$cacheKey string
$view string
$data array | callable Pass the data as array or a data provider function.
$lifeTime integer In seconds. Default is one hour/3600 seconds.
$force boolean Force to bypass the cache and always call $data. For debuggin purposes.
return string