added an exception when trying to render a template when no loader has been set (closes #975)

This commit is contained in:
Fabien Potencier
2013-01-26 16:09:24 +01:00
parent 88cefd3712
commit 5218db7796
2 changed files with 18 additions and 4 deletions
+8 -4
View File
@@ -263,7 +263,7 @@ class Twig_Environment
*/
public function getTemplateClass($name, $index = null)
{
return $this->templateClassPrefix.md5($this->loader->getCacheKey($name)).(null === $index ? '' : '_'.$index);
return $this->templateClassPrefix.md5($this->getLoader()->getCacheKey($name)).(null === $index ? '' : '_'.$index);
}
/**
@@ -318,10 +318,10 @@ class Twig_Environment
if (!class_exists($cls, false)) {
if (false === $cache = $this->getCacheFilename($name)) {
eval('?>'.$this->compileSource($this->loader->getSource($name), $name));
eval('?>'.$this->compileSource($this->getLoader()->getSource($name), $name));
} else {
if (!is_file($cache) || ($this->isAutoReload() && !$this->isTemplateFresh($name, filemtime($cache)))) {
$this->writeCacheFile($cache, $this->compileSource($this->loader->getSource($name), $name));
$this->writeCacheFile($cache, $this->compileSource($this->getLoader()->getSource($name), $name));
}
require_once $cache;
@@ -356,7 +356,7 @@ class Twig_Environment
}
}
return $this->loader->isFresh($name, $time);
return $this->getLoader()->isFresh($name, $time);
}
public function resolveTemplate($names)
@@ -553,6 +553,10 @@ class Twig_Environment
*/
public function getLoader()
{
if (null === $this->loader) {
throw new LogicException('You must set a loader first.');
}
return $this->loader;
}
+10
View File
@@ -11,6 +11,16 @@
class Twig_Tests_EnvironmentTest extends PHPUnit_Framework_TestCase
{
/**
* @expectedException LogicException
* @expectedExceptionMessage You must set a loader first.
*/
public function testRenderNoLoader()
{
$env = new Twig_Environment();
$env->render('test');
}
public function testAutoescapeOption()
{
$loader = new Twig_Loader_Array(array(