From 67e23484671df35fbb0436fb3dc66659a9f41a5f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Sat, 7 Nov 2020 21:36:45 +0100 Subject: [PATCH] Continued: - moved exception constants to interface Parseable - added type-hint for primitive variable(s) MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Roland Häder --- .../classes/parser/xml/class_XmlParser.php | 32 +++++++------------ .../image/class_ImageTemplateEngine.php | 6 ++-- .../mail/class_MailTemplateEngine.php | 6 ++-- .../menu/class_MenuTemplateEngine.php | 6 ++-- .../interfaces/parser/class_Parseable.php | 7 +++- 5 files changed, 27 insertions(+), 30 deletions(-) diff --git a/framework/main/classes/parser/xml/class_XmlParser.php b/framework/main/classes/parser/xml/class_XmlParser.php index a21c064b..28ba4a8b 100644 --- a/framework/main/classes/parser/xml/class_XmlParser.php +++ b/framework/main/classes/parser/xml/class_XmlParser.php @@ -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 . */ 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:
');
-			debug_print_backtrace();
-			self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('
'); - 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__ . ':
'.htmlentities($content).'
'); - 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); diff --git a/framework/main/classes/template/image/class_ImageTemplateEngine.php b/framework/main/classes/template/image/class_ImageTemplateEngine.php index e213c6a7..96e8a093 100644 --- a/framework/main/classes/template/image/class_ImageTemplateEngine.php +++ b/framework/main/classes/template/image/class_ImageTemplateEngine.php @@ -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: >".$nodeName."<
\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; diff --git a/framework/main/classes/template/mail/class_MailTemplateEngine.php b/framework/main/classes/template/mail/class_MailTemplateEngine.php index 9263be58..22d06a0e 100644 --- a/framework/main/classes/template/mail/class_MailTemplateEngine.php +++ b/framework/main/classes/template/mail/class_MailTemplateEngine.php @@ -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: >".$nodeName."<
\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; diff --git a/framework/main/classes/template/menu/class_MenuTemplateEngine.php b/framework/main/classes/template/menu/class_MenuTemplateEngine.php index a0ff0309..efca88bc 100644 --- a/framework/main/classes/template/menu/class_MenuTemplateEngine.php +++ b/framework/main/classes/template/menu/class_MenuTemplateEngine.php @@ -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: >".$nodeName."<
\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 diff --git a/framework/main/interfaces/parser/class_Parseable.php b/framework/main/interfaces/parser/class_Parseable.php index d2089d90..b8a27c7f 100644 --- a/framework/main/interfaces/parser/class_Parseable.php +++ b/framework/main/interfaces/parser/class_Parseable.php @@ -28,6 +28,11 @@ use Org\Mxchange\CoreFramework\Generic\FrameworkInterface; * along with this program. If not, see . */ 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); } -- 2.39.5