Skip to content

Commit 62dd966

Browse files
committed
Better uses of NamespacesRegistry
1 parent d6f33a8 commit 62dd966

File tree

4 files changed

+11
-7
lines changed

4 files changed

+11
-7
lines changed

src/AirBubble/Renderer/Template.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
use ElementaryFramework\AirBubble\Util\OutputIndenter;
4242
use ElementaryFramework\AirBubble\Util\TemplateExtender;
4343
use ElementaryFramework\AirBubble\Util\Utilities;
44+
use ElementaryFramework\AirBubble\Util\NamespacesRegistry;
4445

4546
/**
4647
* Template file
@@ -56,8 +57,6 @@
5657
*/
5758
class Template implements IParser, IRenderer
5859
{
59-
public const SCHEMA_URI = "http://bubble.na2axl.tk/schema";
60-
6160
public const DATA_MODEL_QUERY_REGEX = "/\\\$\\{([a-zA-Z0-9,._\\(\\)\\[\\]'\" ]+)\\}/U";
6261

6362
public const EXPRESSION_REGEX = "/\\{\\{(.+)\\}\\}/U";
@@ -181,7 +180,10 @@ private function _loadParser(Tokenizer $parser)
181180
$this->_tokensList->setTemplate($this);
182181

183182
$this->_xPath = new \DOMXPath($this->_dom);
184-
$this->_xPath->registerNamespace("b", self::SCHEMA_URI);
183+
184+
foreach (NamespacesRegistry::registry() as $ns => $uri) {
185+
$this->_xPath->registerNamespace(rtrim($ns, ':'), $uri);
186+
}
185187
}
186188

187189
private function _processInclusions()

src/AirBubble/Util/NamespacesRegistry.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ abstract class NamespacesRegistry
6666
* @var array
6767
*/
6868
private static $_registry = array(
69-
"b:" => Template::SCHEMA_URI
69+
"b:" => "http://bubble.na2axl.tk/schema"
7070
);
7171

7272
/**

src/AirBubble/Util/TemplateExtender.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434

3535
use ElementaryFramework\AirBubble\Renderer\Template;
3636
use ElementaryFramework\AirBubble\Data\DataResolver;
37+
use ElementaryFramework\AirBubble\Util\NamespacesRegistry;
3738

3839
/**
3940
* Template Extender
@@ -96,7 +97,7 @@ public static function merge(string $parent, string $child): string
9697

9798
private static function _processReplaces(\DOMDocument &$dom, array $blocks)
9899
{
99-
$nodes = $dom->getElementsByTagNameNS(Template::SCHEMA_URI, "block");
100+
$nodes = $dom->getElementsByTagNameNS(NamespacesRegistry::get("b:"), "block");
100101
$length = $nodes->length;
101102

102103
foreach ($nodes as $node) {
@@ -106,7 +107,7 @@ private static function _processReplaces(\DOMDocument &$dom, array $blocks)
106107
}
107108
}
108109

109-
if ($dom->getElementsByTagNameNS(Template::SCHEMA_URI, "block")->length < $length) {
110+
if ($dom->getElementsByTagNameNS(NamespacesRegistry::get("b:"), "block")->length < $length) {
110111
self::_processReplaces($dom, $blocks);
111112
}
112113
}

src/AirBubble/Util/Utilities.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
use ElementaryFramework\AirBubble\AirBubble;
3636
use ElementaryFramework\AirBubble\Data\DataResolver;
3737
use ElementaryFramework\AirBubble\Renderer\Template;
38+
use ElementaryFramework\AirBubble\Util\NamespacesRegistry;
3839

3940
/**
4041
* Utilities
@@ -83,7 +84,7 @@ public static function appendHTML(\DOMNode $parent, string $html)
8384
public static function insertHTMLBefore(string $html, \DOMNode $refNode)
8485
{
8586
$tmpDoc = new \DOMDocument();
86-
$tmpDoc->loadXML("<wrapper xmlns:b=\"" . Template::SCHEMA_URI . "\">{$html}</wrapper>");
87+
$tmpDoc->loadXML("<wrapper xmlns:b=\"" . NamespacesRegistry::get("b:") . "\">{$html}</wrapper>");
8788
foreach ($tmpDoc->documentElement->childNodes as $node) {
8889
$node = $refNode->ownerDocument->importNode($node, true);
8990
$refNode->parentNode->insertBefore($node, $refNode);

0 commit comments

Comments
 (0)