From 6e16b3deca4e94016bfe6209504fb3e5db7b586e Mon Sep 17 00:00:00 2001 From: Evan Lovely Date: Wed, 12 Oct 2016 14:26:47 -0700 Subject: [PATCH] Throwing error on uncompiled templates --- .../PatternEngine/Twig/Loaders/PatternLoader.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/PatternLab/PatternEngine/Twig/Loaders/PatternLoader.php b/src/PatternLab/PatternEngine/Twig/Loaders/PatternLoader.php index 92371b1..8d0ae3a 100644 --- a/src/PatternLab/PatternEngine/Twig/Loaders/PatternLoader.php +++ b/src/PatternLab/PatternEngine/Twig/Loaders/PatternLoader.php @@ -116,7 +116,16 @@ public function __construct($options = array()) { */ public function render($options = array()) { - return $this->instance->render($options["pattern"], $options["data"]); + $result = $this->instance->render($options["pattern"], $options["data"]); + // This error handler catches files that didn't render using any of the loaders. + // The most common scenario is when a file's contents get passed to and through `Twig_Loader_String` and + // outputs the raw Twig file contents like `@atoms/buttons/button.twig`. + // @todo Remove this once `Twig_Loader_String` is removed. + if (strpos($result, "@") === 0) { + throw new \Twig_Error_Loader("Twig file not found: " . $result . "\n"); + } else { + return $result; + } }