Skip to content

Commit de1ff0b

Browse files
committed
Performance optimizations.
1 parent 9718268 commit de1ff0b

File tree

2 files changed

+3
-7
lines changed

2 files changed

+3
-7
lines changed

src/HTMLServerComponentsCompiler.php

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,7 @@ public function process($content, $options = [])
126126
if ($componentElementsCount === 0) {
127127
break;
128128
}
129-
for ($i = 0; $i < $componentElementsCount; $i++) {
130-
$componentElement = $componentElements->item($i);
131-
if ($componentElement === null) { // component in component innerHTML case
132-
continue;
133-
}
129+
foreach ($componentElements as $componentElement) {
134130
$component = $this->constructComponent($componentElement->getAttributes(), $componentElement->innerHTML);
135131
$componentResultHTML = $getComponentResultHTML($component);
136132
$isInBodyTag = false;
@@ -144,7 +140,8 @@ public function process($content, $options = [])
144140
}
145141
if ($isInBodyTag) {
146142
$insertTargetName = 'html-server-components-compiler-insert-target';
147-
$componentElement->parentNode->replaceChild($domDocument->createInsertTarget($insertTargetName), $componentElement);
143+
$componentElement->parentNode->insertBefore($domDocument->createInsertTarget($insertTargetName), $componentElement);
144+
$componentElement->parentNode->removeChild($componentElement); // must be before insertHTML because a duplicate elements IDs can occur.
148145
$domDocument->insertHTML($componentResultHTML, $insertTargetName);
149146
} else {
150147
$componentElement->parentNode->removeChild($componentElement);

tests/Test.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,6 @@ public function testProccessData()
129129
public function testComponentInComponentInnerHTML()
130130
{
131131

132-
$_GET['ivo'] = 1;
133132
$fullFilename1 = $this->createFile('component1.php', '<html><body>text1</body></html>');
134133
$fullFilename2 = $this->createFile('component2.php', '<html><head><title>hi</title><body><?= $component->innerHTML;?></body>/head></html>');
135134

0 commit comments

Comments
 (0)