+
+ /**
+ * Loads a given view helper (by name)
+ *
+ * @param $helperName The helper's name
+ * @return void
+ * @throws ViewHelperNotFoundException If the given view helper was not found
+ */
+ protected function loadViewHelper ($helperName) {
+ // Make first character upper case, rest low
+ $helperName = ucfirst($helperName);
+
+ // Is this view helper loaded?
+ if (!isset($this->helpers[$helperName])) {
+ // Create a class name
+ $className = "{$helperName}ViewHelper";
+
+ // Does this class exists?
+ if (!class_exists($className)) {
+ // Abort here!
+ throw new ViewHelperNotFoundException(array($this, $helperName), self::EXCEPTION_INVALID_VIEW_HELPER);
+ }
+
+ // Generate new instance
+ $eval = sprintf("\$this->helpers[%s] = %s::create%s();",
+ $helperName,
+ $className,
+ $className
+ );
+
+ // Run the code
+ eval($eval);
+ }
+
+ // Return the requested instance
+ return $this->helpers[$helperName];
+ }
+
+ /**
+ * Assigns the last loaded raw template content with a given variable
+ *
+ * @param $templateName Name of the template we want to assign
+ * @param $variableName Name of the variable we want to assign
+ * @return void
+ */
+ public function assignTemplateWithVariable ($templateName, $variableName) {
+ // Get the content from last loaded raw template
+ $content = $this->getRawTemplateData();
+
+ // Assign the variable
+ $this->assignVariable($variableName, $content);
+
+ // Purge raw content
+ $this->setRawTemplateData("");
+ }
+
+ /**
+ * Transfers the content of this template engine to a given response instance
+ *
+ * @param $responseInstance An instance of a response class
+ * @return void
+ */
+ public function transferToResponse (Responseable $responseInstance) {
+ // Get the content and set it in the response class
+ $responseInstance->writeToBody($this->getCompiledData());
+ }