- Add comprehensive health check system with multiple endpoints - Add Prometheus metrics endpoint - Add production logging configurations (5 strategies) - Add complete deployment documentation suite: * QUICKSTART.md - 30-minute deployment guide * DEPLOYMENT_CHECKLIST.md - Printable verification checklist * DEPLOYMENT_WORKFLOW.md - Complete deployment lifecycle * PRODUCTION_DEPLOYMENT.md - Comprehensive technical reference * production-logging.md - Logging configuration guide * ANSIBLE_DEPLOYMENT.md - Infrastructure as Code automation * README.md - Navigation hub * DEPLOYMENT_SUMMARY.md - Executive summary - Add deployment scripts and automation - Add DEPLOYMENT_PLAN.md - Concrete plan for immediate deployment - Update README with production-ready features All production infrastructure is now complete and ready for deployment.
53 lines
1.5 KiB
PHP
53 lines
1.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
require_once __DIR__ . '/../../vendor/autoload.php';
|
|
|
|
use App\Framework\View\DomWrapper;
|
|
|
|
echo "=== Test DOM Iteration Issue ===\n\n";
|
|
|
|
//Test: Does replacing elements during iteration affect the result?
|
|
$html = '<html><body><x-a /><x-b /><x-c /></body></html>';
|
|
$dom = DomWrapper::fromString($html);
|
|
|
|
echo "Original HTML: " . $dom->document->saveHTML() . "\n\n";
|
|
|
|
// Find all x-* elements
|
|
$xComponents = [];
|
|
$allElements = $dom->document->getElementsByTagName('*');
|
|
|
|
foreach ($allElements as $element) {
|
|
if ($element instanceof \Dom\HTMLElement && str_starts_with(strtolower($element->tagName), 'x-')) {
|
|
$xComponents[] = $element;
|
|
echo "Found: {$element->tagName}\n";
|
|
}
|
|
}
|
|
|
|
echo "\nTotal found: " . count($xComponents) . "\n\n";
|
|
|
|
// Now replace them
|
|
echo "=== Replacing elements ===\n";
|
|
foreach ($xComponents as $i => $element) {
|
|
echo "Replacing element #{$i}: {$element->tagName}\n";
|
|
|
|
$replacement = '<div data-component="' . strtolower($element->tagName) . '">Replaced</div>';
|
|
|
|
try {
|
|
// Check if element still has a parent (might be removed if it was a child)
|
|
if ($element->parentNode === null) {
|
|
echo " → Element has no parent! Skipping.\n";
|
|
continue;
|
|
}
|
|
|
|
$dom->replaceElementWithHtml($element, $replacement);
|
|
echo " → Successfully replaced\n";
|
|
} catch (\Throwable $e) {
|
|
echo " → ERROR: " . $e->getMessage() . "\n";
|
|
}
|
|
}
|
|
|
|
echo "\n=== Final HTML ===\n";
|
|
echo $dom->document->saveHTML() . "\n";
|