analyzeData($testData); echo "๐Ÿ“Š Data Analysis:\n"; foreach ($analysis as $key => $value) { echo " {$key}: " . (is_object($value) ? $value::class : $value) . "\n"; } echo "\n"; // Generate QR Code Matrix echo "๐Ÿ—๏ธ Generating QR Code Matrix...\n"; $matrix = $generator->generateMatrix($testData); echo "๐Ÿ“ Matrix Size: {$matrix->getSize()}x{$matrix->getSize()}\n"; $stats = $matrix->getStatistics(); echo "๐Ÿ“Š Matrix Statistics:\n"; foreach ($stats as $key => $value) { echo " {$key}: {$value}\n"; } echo "\n"; // Generate ASCII representation for terminal echo "๐ŸŽจ ASCII QR Code (for terminal):\n"; echo $matrix->toString('โ–ˆโ–ˆ', ' ') . "\n"; // Generate SVG echo "๐Ÿ–ผ๏ธ Generating SVG...\n"; $svg = $generator->generateSvg($testData); // Save SVG to file $svgFile = __DIR__ . '/test-qr-code.svg'; file_put_contents($svgFile, $svg); echo "๐Ÿ’พ SVG saved to: {$svgFile}\n"; // Generate Data URI $dataUri = $generator->generateDataUri($testData); echo "๐Ÿ”— Data URI length: " . strlen($dataUri) . " characters\n"; echo "๐Ÿ”— Data URI preview: " . substr($dataUri, 0, 100) . "...\n\n"; // Test TOTP URI echo "๐Ÿ” Testing TOTP QR Code...\n"; $totpUri = 'otpauth://totp/Test:user@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Test&algorithm=SHA1&digits=6&period=30'; echo "๐Ÿ“ TOTP URI: {$totpUri}\n"; echo "๐Ÿ“ TOTP URI Length: " . strlen($totpUri) . " bytes\n"; // Analyze TOTP data $totpAnalysis = $generator->analyzeData($totpUri); echo "๐Ÿ“Š TOTP Analysis:\n"; foreach ($totpAnalysis as $key => $value) { echo " {$key}: " . (is_object($value) ? $value::class : $value) . "\n"; } echo "\n"; // Force version 3 for TOTP (2208 bits capacity) $totpSvg = $generator->generateSvg($totpUri, \App\Framework\QrCode\ErrorCorrectionLevel::M, new \App\Framework\QrCode\QrCodeVersion(3)); $totpFile = __DIR__ . '/test-totp-qr.svg'; file_put_contents($totpFile, $totpSvg); echo "๐Ÿ’พ TOTP QR Code saved to: {$totpFile}\n"; echo "\nโœ… QR Code generation successful!\n"; echo "๐ŸŒ You can open the SVG files in your browser to see the QR codes.\n"; } catch (Exception $e) { echo "โŒ Error: " . $e->getMessage() . "\n"; echo "๐Ÿ“ File: " . $e->getFile() . ":" . $e->getLine() . "\n"; echo "๐Ÿ” Trace:\n" . $e->getTraceAsString() . "\n"; }