2 /** @package verysimple::Phreeze */
5 * import supporting libraries
7 require_once("verysimple/Phreeze/IRenderEngine.php");
8 require_once 'Twig/Autoloader.php';
9 Twig_Autoloader
::register();
12 * TwigRenderEngine is an implementation of IRenderEngine that uses
13 * the Twig template engine to render views
15 * @package verysimple::Phreeze
16 * @author VerySimple Inc.
17 * @copyright 1997-2011 VerySimple, Inc.
18 * @license http://www.gnu.org/licenses/lgpl.html LGPL
21 class TwigRenderEngine
implements IRenderEngine
24 /** @var Twig_Environment */
27 /** @var Twig_Loader_Filesystem */
29 private $assignments = array ();
33 * @param string $templatePath
34 * @param string $compilePath
36 function __construct($templatePath = '', $compilePath = '')
38 $this->loader
= new Twig_Loader_Filesystem($templatePath);
39 $this->twig
= new Twig_Environment($this->loader
, array (
40 'cache' => $compilePath
46 * @see IRenderEngine::assign()
48 function assign($key, $value)
50 return $this->assignments
[$key] = $value;
55 * @see IRenderEngine::display()
57 function display($template)
59 if (strpos('.', $template) === false) {
63 return $this->twig
->display($template, $this->assignments
);
68 * @see IRenderEngine::fetch()
70 function fetch($template)
72 if (strpos('.', $template) === false) {
76 return $this->twig
->render($template, $this->assignments
);
81 * @see IRenderEngine::clear()
85 unset($this->assignments
[$key]);
90 * @see IRenderEngine::clearAll()
94 $this->assignments
= array ();
99 * @see IRenderEngine::getAll()
103 return $this->assignments
;