Make sure template function is callable from processTemplate()
authorkaldari <rkaldari@wikimedia.org>
Fri, 20 Mar 2015 00:09:13 +0000 (17:09 -0700)
committerkaldari <rkaldari@wikimedia.org>
Fri, 20 Mar 2015 22:06:59 +0000 (15:06 -0700)
Change-Id: Id9df4062754b02e7217779bc6c0ba42d457e9942

includes/TemplateParser.php

index a22f280..65904a0 100644 (file)
@@ -79,7 +79,7 @@ class TemplateParser {
         */
        public function getTemplate( $templateName ) {
                // If a renderer has already been defined for this template, reuse it
-               if ( isset( $this->renderers[$templateName] ) ) {
+               if ( isset( $this->renderers[$templateName] ) && is_callable( $this->renderers[$templateName] ) ) {
                        return $this->renderers[$templateName];
                }
 
@@ -134,6 +134,9 @@ class TemplateParser {
                }
 
                $renderer = eval( $code );
+               if ( !is_callable( $renderer ) ) {
+                       throw new RuntimeException( "Requested template, {$templateName}, is not callable" );
+               }
                return $this->renderers[$templateName] = $renderer;
        }