]> git.mxchange.org Git - core.git/blobdiff - framework/main/classes/template/xml/class_BaseXmlTemplateEngine.php
Continued:
[core.git] / framework / main / classes / template / xml / class_BaseXmlTemplateEngine.php
index e86763777e99529537ef3cd5f4befdcb68b48a1a..cbbf4a736a026a290ef65fe393ab7d1330c0d66a 100644 (file)
@@ -4,15 +4,16 @@ namespace Org\Mxchange\CoreFramework\Template\Engine\Xml;
 
 // Import framework stuff
 use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap;
-use Org\Mxchange\CoreFramework\Factory\ObjectFactory;
+use Org\Mxchange\CoreFramework\Factory\Object\ObjectFactory;
 use Org\Mxchange\CoreFramework\Factory\Template\XmlTemplateEngineFactory;
+use Org\Mxchange\CoreFramework\Helper\Application\ApplicationHelper;
 use Org\Mxchange\CoreFramework\Registry\GenericRegistry;
 use Org\Mxchange\CoreFramework\Template\CompileableTemplate;
 use Org\Mxchange\CoreFramework\Template\Engine\BaseTemplateEngine;
 use Org\Mxchange\CoreFramework\Template\Xml\CompileableXmlTemplate;
-use Org\Mxchange\CoreFramework\Traits\Stacker\StackableTrait;
+use Org\Mxchange\CoreFramework\Traits\Stack\StackableTrait;
 use Org\Mxchange\CoreFramework\Traits\Template\CompileableTemplateTrait;
-use Org\Mxchange\CoreFramework\Utils\String\StringUtils;
+use Org\Mxchange\CoreFramework\Utils\Strings\StringUtils;
 
 // Import SPL stuff
 use \InvalidArgumentException;
@@ -85,6 +86,11 @@ abstract class BaseXmlTemplateEngine extends BaseTemplateEngine implements Compi
         */
        private $xmlCompacting = false;
 
+       /**
+        * Method name for XML template type
+        */
+       private $initMethodName = 'invalid';
+
        /**
         * Protected constructor
         *
@@ -113,9 +119,10 @@ abstract class BaseXmlTemplateEngine extends BaseTemplateEngine implements Compi
                // Set XML template type and prefix
                $this->xmlTemplateType = $xmlTemplateType;
                $this->typePrefix      = $typePrefix;
+               $this->initMethodName = sprintf('init%s', StringUtils::convertToClassName($this->xmlTemplateType));
 
                // Get template instance
-               $applicationInstance = GenericRegistry::getRegistry()->getInstance('application');
+               $applicationInstance = ApplicationHelper::getSelfInstance();
 
                // Determine base path
                $templateBasePath = FrameworkBootstrap::getConfigurationInstance()->getConfigEntry('application_base_path') . FrameworkBootstrap::getRequestInstance()->getRequestElement('app') . '/';
@@ -124,9 +131,6 @@ abstract class BaseXmlTemplateEngine extends BaseTemplateEngine implements Compi
                if (empty($templateBasePath)) {
                        // Base path is empty
                        throw new BasePathIsEmptyException($this, self::EXCEPTION_UNEXPECTED_EMPTY_STRING);
-               } elseif (!is_string($templateBasePath)) {
-                       // Is not a string
-                       throw new InvalidBasePathStringException(array($this, $templateBasePath), self::EXCEPTION_INVALID_STRING);
                } elseif (!is_dir($templateBasePath)) {
                        // Is not a path
                        throw new BasePathIsNoDirectoryException(array($this, $templateBasePath), self::EXCEPTION_INVALID_PATH_NAME);
@@ -175,7 +179,7 @@ abstract class BaseXmlTemplateEngine extends BaseTemplateEngine implements Compi
                if (empty($templateName)) {
                        // Set generic template name
                        $templateName = $this->typePrefix . '_' . $this->xmlTemplateType . '_template_type';
-               } // END - if
+               }
 
                // Set template type
                $this->setTemplateType(FrameworkBootstrap::getConfigurationInstance()->getConfigEntry($templateName));
@@ -199,8 +203,8 @@ abstract class BaseXmlTemplateEngine extends BaseTemplateEngine implements Compi
         * @param       $element                Element name to set as current main node
         * @return      $currMainNode   Current main node
         */
-       private final function setCurrMainNode ($element) {
-               $this->curr['main_node'] = (string) $element;
+       private final function setCurrMainNode (string $element) {
+               $this->curr['main_node'] = $element;
        }
 
        /**
@@ -262,7 +266,7 @@ abstract class BaseXmlTemplateEngine extends BaseTemplateEngine implements Compi
                if (is_null($value)) {
                        // Bah, needs fixing.
                        $this->debugInstance(sprintf('[%s:%d]: key=%s returns NULL', __METHOD__, __LINE__, $key));
-               } // END - if
+               }
 
                // Return value
                return $value;
@@ -275,7 +279,7 @@ abstract class BaseXmlTemplateEngine extends BaseTemplateEngine implements Compi
         * @param       $templateDependency             A template to load to satisfy dependencies
         * @return      void
         */
-       protected function handleTemplateDependency ($node, $templateDependency) {
+       protected function handleTemplateDependency (string $node, string $templateDependency) {
                // Check that the XML node is not empty
                assert(!empty($node));
 
@@ -292,7 +296,7 @@ abstract class BaseXmlTemplateEngine extends BaseTemplateEngine implements Compi
 
                        // Save the parsed raw content in our dependency array
                        $this->dependencyContent[$node] = $templateInstance->getRawTemplateData();
-               } // END - if
+               }
        }
 
        /**
@@ -304,9 +308,9 @@ abstract class BaseXmlTemplateEngine extends BaseTemplateEngine implements Compi
         * @return      void
         * @throws      InvalidXmlNodeException         If an unknown/invalid XML node name was found
         */
-       public final function startElement ($resource, $element, array $attributes) {
+       public final function startElement ($resource, string $element, array $attributes) {
                // Initial method name which will never be called...
-               $methodName = 'init' . StringUtils::convertToClassName($this->xmlTemplateType);
+               $methodName = $this->initMethodName;
 
                // Make the element name lower-case
                $element = strtolower($element);
@@ -339,7 +343,7 @@ abstract class BaseXmlTemplateEngine extends BaseTemplateEngine implements Compi
         * @return      void
         * @throws      XmlNodeMismatchException        If current main node mismatches the closing one
         */
-       public final function finishElement ($resource, $nodeName) {
+       public final function finishElement ($resource, string $nodeName) {
                // Make all lower-case
                $nodeName = strtolower($nodeName);
 
@@ -348,7 +352,7 @@ abstract class BaseXmlTemplateEngine extends BaseTemplateEngine implements Compi
                if (($nodeName != $this->getCurrMainNode()) && (in_array($nodeName, $this->getMainNodes()))) {
                        // Did not match!
                        throw new XmlNodeMismatchException (array($this, $nodeName, $this->getCurrMainNode()), XmlParser::EXCEPTION_XML_NODE_MISMATCH);
-               } // END - if
+               }
 
                // Construct method name
                $methodName = 'finish' . StringUtils::convertToClassName($nodeName);
@@ -373,7 +377,7 @@ abstract class BaseXmlTemplateEngine extends BaseTemplateEngine implements Compi
                }
 
                // Get a XmlParser instance
-               $parserInstance = ObjectFactory::createObjectByConfiguredName('xml_parser_class', array($this));
+               $parserInstance = ObjectFactory::createObjectByConfiguredName('xml_parser_class', [$this]);
 
                // Check if XML compacting is enabled
                if ($this->isXmlCompactingEnabled()) {