version->getVersionNumber()}\n"; echo " Error Level: {$config->errorCorrectionLevel->value}\n"; echo " Encoding: {$config->encodingMode->value}\n"; echo " Matrix Size: {$config->version->getMatrixSize()}x{$config->version->getMatrixSize()}\n\n"; // Get EC info $ecInfo = ReedSolomonEncoder::getECInfo( $config->version->getVersionNumber(), $config->errorCorrectionLevel->value ); echo "Error Correction Info:\n"; echo " Total codewords: {$ecInfo['totalCodewords']}\n"; echo " Data codewords: {$ecInfo['dataCodewords']}\n"; echo " EC codewords: {$ecInfo['ecCodewords']}\n"; echo " Blocks: {$ecInfo['blocks']}\n"; echo " EC per block: {$ecInfo['ecPerBlock']}\n\n"; // Generate QR Code echo "Generating QR Code...\n"; $matrix = QrCodeGenerator::generate($data, $config); echo "Matrix generated successfully!\n"; echo " Size: {$matrix->getSize()}x{$matrix->getSize()}\n"; echo " Version: {$matrix->getVersion()->getVersionNumber()}\n\n"; // Count modules $darkCount = 0; $lightCount = 0; $size = $matrix->getSize(); for ($row = 0; $row < $size; $row++) { for ($col = 0; $col < $size; $col++) { $module = $matrix->getModuleAt($row, $col); if ($module->isDark()) { $darkCount++; } else { $lightCount++; } } } echo "Module Statistics:\n"; echo " Total modules: " . ($darkCount + $lightCount) . "\n"; echo " Dark modules: {$darkCount}\n"; echo " Light modules: {$lightCount}\n"; echo " Dark ratio: " . round(($darkCount / ($darkCount + $lightCount)) * 100, 2) . "%\n\n"; // Generate SVG echo "Rendering SVG...\n"; $renderer = new QrCodeRenderer(); $svg = $renderer->renderSvg($matrix); $outputPath = __DIR__ . '/../../public/qrcode-full-test.svg'; file_put_contents($outputPath, $svg); echo "✅ SVG saved to: public/qrcode-full-test.svg\n"; echo "✅ QR Code generated with full Reed-Solomon error correction\n\n"; echo "Test the QR code by scanning: https://localhost/qrcode-full-test.svg\n";