]> git.mxchange.org Git - core.git/commitdiff
Continued:
authorRoland Häder <roland@mxchange.org>
Sat, 7 Nov 2020 20:36:45 +0000 (21:36 +0100)
committerRoland Häder <roland@mxchange.org>
Sat, 7 Nov 2020 20:36:45 +0000 (21:36 +0100)
- moved exception constants to interface Parseable
- added type-hint for primitive variable(s)

Signed-off-by: Roland Häder <roland@mxchange.org>
framework/main/classes/parser/xml/class_XmlParser.php
framework/main/classes/template/image/class_ImageTemplateEngine.php
framework/main/classes/template/mail/class_MailTemplateEngine.php
framework/main/classes/template/menu/class_MenuTemplateEngine.php
framework/main/interfaces/parser/class_Parseable.php

index a21c064bfa8f3cf741c07ab53723e4da647c32ed..28ba4a8b607ae17a5d5b6a95156d9ded8a7b6723 100644 (file)
@@ -7,6 +7,9 @@ use Org\Mxchange\CoreFramework\Parser\BaseParser;
 use Org\Mxchange\CoreFramework\Parser\Parseable;
 use Org\Mxchange\CoreFramework\Template\CompileableTemplate;
 
+// Import SPL stuff
+use \InvalidArgumentException;
+
 /**
  * A Xml Parser class
  *
@@ -30,11 +33,6 @@ use Org\Mxchange\CoreFramework\Template\CompileableTemplate;
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
 class XmlParser extends BaseParser implements Parseable {
-       // Exception constants
-       const EXCEPTION_XML_PARSER_ERROR             = 0x1e0;
-       const EXCEPTION_XML_NODE_UNKNOWN             = 0x1e1;
-       const EXCEPTION_XML_NODE_MISMATCH            = 0x1e2;
-
        /**
         * Protected constructor
         *
@@ -69,14 +67,11 @@ class XmlParser extends BaseParser implements Parseable {
         * @return      void
         * @throws      XmlParserException      If an XML error was found
         */
-       public function parseXmlContent ($content) {
+       public function parseXmlContent (string $content) {
                // Convert all to UTF8
                if (empty($content)) {
-                       // No empty content!
-                       self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('Empty content! Backtrace: <pre>');
-                       debug_print_backtrace();
-                       self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('</pre>');
-                       exit();
+                       // No empty content
+                       throw new InvalidArgumentException('content is empty');
                } elseif (function_exists('recode')) {
                        // Recode found, so use it
                        $content = recode('html..utf8', $content);
@@ -86,22 +81,19 @@ class XmlParser extends BaseParser implements Parseable {
                } else {
                        // @TODO We need to find a fallback solution here
                        $this->partialStub('Cannot find recode/mbstring extension!');
-               } // END - if
+               }
 
                // Get an XML parser
                $xmlParser = xml_parser_create();
 
                // Force case-folding to on
-               xml_parser_set_option($xmlParser, XML_OPTION_CASE_FOLDING, true);
+               xml_parser_set_option($xmlParser, XML_OPTION_CASE_FOLDING, TRUE);
 
                // Set UTF-8
                xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, 'UTF-8');
 
-               // Get instance (we need this :( )
-               $templateInstance = $this->getTemplateInstance();
-
                // Set object
-               xml_set_object($xmlParser, $templateInstance);
+               xml_set_object($xmlParser, $this->getTemplateInstance());
 
                // Set handler call-backs
                xml_set_element_handler($xmlParser, 'startElement', 'finishElement');
@@ -109,10 +101,10 @@ class XmlParser extends BaseParser implements Parseable {
 
                // Now parse the XML tree
                if (!xml_parse($xmlParser, $content)) {
-                       // Error found in XML!
+                       // Error found in XML
                        //* DEBUG: */ exit(__METHOD__ . ':<pre>'.htmlentities($content).'</pre>');
-                       throw new XmlParserException(array($this, $xmlParser), self::EXCEPTION_XML_PARSER_ERROR);
-               } // END - if
+                       throw new XmlParserException(array($this, $xmlParser), Parseable::EXCEPTION_XML_PARSER_ERROR);
+               }
 
                // Free the parser
                xml_parser_free($xmlParser);
index e213c6a7a32271bfb651ddb19d10431b1d5acbd6..96e8a093f100bd980e8124db5ee632a89444e4c0 100644 (file)
@@ -7,7 +7,7 @@ use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap;
 use Org\Mxchange\CoreFramework\Factory\ObjectFactory;
 use Org\Mxchange\CoreFramework\Filesystem\InvalidDirectoryException;
 use Org\Mxchange\CoreFramework\Image\BaseImage;
-use Org\Mxchange\CoreFramework\Parser\Xml\XmlParser;
+use Org\Mxchange\CoreFramework\Parser\Parseable;
 use Org\Mxchange\CoreFramework\Registry\GenericRegistry;
 use Org\Mxchange\CoreFramework\Response\Responseable;
 use Org\Mxchange\CoreFramework\Template\CompileableTemplate;
@@ -214,7 +214,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
                        $methodName = 'setImageProperty' . StringUtils::convertToClassName($element);
                } elseif ($element != 'image') {
                        // Invalid node name found
-                       throw new InvalidXmlNodeException(array($this, $element, $attributes), XmlParser::EXCEPTION_XML_NODE_UNKNOWN);
+                       throw new InvalidXmlNodeException(array($this, $element, $attributes), Parseable::EXCEPTION_XML_NODE_UNKNOWN);
                }
 
                // Call method
@@ -238,7 +238,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
                //* DEBUG: */ echo "END: &gt;".$nodeName."&lt;<br />\n";
                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);
+                       throw new XmlNodeMismatchException (array($this, $nodeName, $this->getCurrMainNode()), Parseable::EXCEPTION_XML_NODE_MISMATCH);
                } elseif (in_array($nodeName, $this->getSubNodes())) {
                        // Silently ignore sub nodes
                        return;
index 9263be58db22ef30901c9478845153a6ec71dd74..22d06a0e58da8edfa0f6f13bfd01e9c817b5d0e6 100644 (file)
@@ -6,7 +6,7 @@ namespace Org\Mxchange\CoreFramework\Template\Engine;
 use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap;
 use Org\Mxchange\CoreFramework\Filesystem\InvalidDirectoryException;
 use Org\Mxchange\CoreFramework\Mailer\DeliverableMail;
-use Org\Mxchange\CoreFramework\Parser\Xml\XmlParser;
+use Org\Mxchange\CoreFramework\Parser\Parseable;
 use Org\Mxchange\CoreFramework\Registry\GenericRegistry;
 use Org\Mxchange\CoreFramework\Response\Responseable;
 use Org\Mxchange\CoreFramework\Template\CompileableTemplate;
@@ -185,7 +185,7 @@ class MailTemplateEngine extends BaseTemplateEngine implements CompileableTempla
                        $methodName = 'setEmailProperty' . StringUtils::convertToClassName($element);
                } elseif ($element != 'text-mail') {
                        // Invalid node name found
-                       throw new InvalidXmlNodeException(array($this, $element, $attributes), XmlParser::EXCEPTION_XML_NODE_UNKNOWN);
+                       throw new InvalidXmlNodeException(array($this, $element, $attributes), Parseable::EXCEPTION_XML_NODE_UNKNOWN);
                }
 
                // Call method
@@ -209,7 +209,7 @@ class MailTemplateEngine extends BaseTemplateEngine implements CompileableTempla
                //* DEBUG: */ echo "END: &gt;".$nodeName."&lt;<br />\n";
                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);
+                       throw new XmlNodeMismatchException (array($this, $nodeName, $this->getCurrMainNode()), Parseable::EXCEPTION_XML_NODE_MISMATCH);
                } elseif (in_array($nodeName, $this->getSubNodes())) {
                        // Silently ignore sub nodes
                        return;
index a0ff0309a5e958e90573d6b2a196703cfa89b5e3..efca88bc19f219a22ffdcdc0dde4904edda913f4 100644 (file)
@@ -7,7 +7,7 @@ use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap;
 use Org\Mxchange\CoreFramework\Factory\ObjectFactory;
 use Org\Mxchange\CoreFramework\Filesystem\InvalidDirectoryException;
 use Org\Mxchange\CoreFramework\Menu\RenderableMenu;
-use Org\Mxchange\CoreFramework\Parser\Xml\XmlParser;
+use Org\Mxchange\CoreFramework\Parser\Parseable;
 use Org\Mxchange\CoreFramework\Registry\GenericRegistry;
 use Org\Mxchange\CoreFramework\Template\CompileableTemplate;
 use Org\Mxchange\CoreFramework\Template\Engine\BaseTemplateEngine;
@@ -299,7 +299,7 @@ class MenuTemplateEngine extends BaseTemplateEngine implements CompileableTempla
                        $methodName = 'start' . StringUtils::convertToClassName($element);
                } elseif ($element != 'menu') {
                        // Invalid node name found
-                       throw new InvalidXmlNodeException(array($this, $element, $attributes), XmlParser::EXCEPTION_XML_NODE_UNKNOWN);
+                       throw new InvalidXmlNodeException(array($this, $element, $attributes), Parseable::EXCEPTION_XML_NODE_UNKNOWN);
                }
 
                // Call method
@@ -323,7 +323,7 @@ class MenuTemplateEngine extends BaseTemplateEngine implements CompileableTempla
                //* DEBUG: */ echo "END: &gt;".$nodeName."&lt;<br />\n";
                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);
+                       throw new XmlNodeMismatchException (array($this, $nodeName, $this->getCurrMainNode()), Parseable::EXCEPTION_XML_NODE_MISMATCH);
                } // END - if
 
                // Construct method name
index d2089d906fdf3b9c7d0c159434a913c8b3c03a1d..b8a27c7f179a94114914e16a82ca2408cb879969 100644 (file)
@@ -28,6 +28,11 @@ use Org\Mxchange\CoreFramework\Generic\FrameworkInterface;
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
 interface Parseable extends FrameworkInterface {
+       // Exception constants
+       const EXCEPTION_XML_PARSER_ERROR  = 0x1e0;
+       const EXCEPTION_XML_NODE_UNKNOWN  = 0x1e1;
+       const EXCEPTION_XML_NODE_MISMATCH = 0x1e2;
+
        /**
         * Parses the given XML content
         *
@@ -35,6 +40,6 @@ interface Parseable extends FrameworkInterface {
         * @return      void
         * @throws      XmlParserException      If an XML error was found
         */
-       function parseXmlContent ($content);
+       function parseXmlContent (string $content);
 
 }