/**
* Get the evaluated contents of the view template.
*
* @param string $path The path to the view template
* @param array $forceParams Any additional information to pass to the view template engine
*
* @return array Content evaluation information
*/
public function get($path, array $forceParams = array())
{
// If it's cached return the path to the cached file's path
if ($this->isCached($path)) {
return array('type' => 'path', 'content' => $this->getCachePath($path));
}
// Not cached or caching not really allowed. Compile it and cache it.
$content = $this->compile($path, $forceParams);
$cachePath = $this->putToCache($path, $content);
// If we could cache it, return the cached file's path
if ($cachePath !== false) {
return array('type' => 'path', 'content' => $cachePath);
}
// We could not write to the cache. Hm, can I use a stream wrapper?
$canUseStreams = Buffer::canRegisterWrapper();
if ($canUseStreams) {
$id = $this->getIdentifier($path);
$streamPath = 'fof://' . $this->view->getContainer()->componentName . '/compiled_templates/' . $id . '.php';
return array('type' => 'path', 'content' => $streamPath);
}
// I couldn't use a stream wrapper. I have to give up.
throw new PossiblySuhosin();
}