1<?php 2 3/* 4 * This file is part of the Assetic package, an OpenSky project. 5 * 6 * (c) 2010-2014 OpenSky Project Inc 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 12namespace Assetic\Extension\Twig; 13 14use Assetic\Factory\Resource\ResourceInterface; 15 16/** 17 * A Twig template resource. 18 * 19 * @author Kris Wallsmith <kris.wallsmith@gmail.com> 20 */ 21class TwigResource implements ResourceInterface 22{ 23 private $loader; 24 private $name; 25 26 public function __construct(\Twig_LoaderInterface $loader, $name) 27 { 28 $this->loader = $loader; 29 $this->name = $name; 30 } 31 32 public function getContent() 33 { 34 try { 35 return method_exists($this->loader, 'getSourceContext') 36 ? $this->loader->getSourceContext($this->name)->getCode() 37 : $this->loader->getSource($this->name); 38 } catch (\Twig_Error_Loader $e) { 39 return ''; 40 } 41 } 42 43 public function isFresh($timestamp) 44 { 45 try { 46 return $this->loader->isFresh($this->name, $timestamp); 47 } catch (\Twig_Error_Loader $e) { 48 return false; 49 } 50 } 51 52 public function __toString() 53 { 54 return $this->name; 55 } 56} 57