Init Git Prod Mars 2026
This commit is contained in:
commit
d81efe93b1
362 files changed
+86627
No files matched your search
@@ -0,0 +1,90 @@
|
||||
<?php
|
||||
// tools/generer_code.php — compatible endroid/qr-code v4 et v5
|
||||
declare(strict_types=1);
|
||||
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
use Endroid\QrCode\QrCode;
|
||||
use Endroid\QrCode\Writer\PngWriter;
|
||||
use Endroid\QrCode\Writer\SvgWriter;
|
||||
|
||||
$url = 'https://uslugi.fr';
|
||||
$pngSize = 1600; // px
|
||||
$margin = 20; // px
|
||||
$publicDir = __DIR__ . '/../public/uploads/img';
|
||||
$basename = 'qr_uslugi';
|
||||
|
||||
if (!filter_var($url, FILTER_VALIDATE_URL)) {
|
||||
http_response_code(400);
|
||||
exit("❌ URL invalide\n");
|
||||
}
|
||||
if (!is_dir($publicDir) && !mkdir($publicDir, 0775, true)) {
|
||||
http_response_code(500);
|
||||
exit("❌ Impossible de créer le dossier: {$publicDir}\n");
|
||||
}
|
||||
|
||||
// Instanciation commune
|
||||
$qr = new QrCode($url);
|
||||
|
||||
// ---------- Compatibilité v4 / v5 ----------
|
||||
/**
|
||||
* v5.x :
|
||||
* - Encoding via new Encoding('UTF-8')
|
||||
* - ECC via new ErrorCorrectionLevelHigh()
|
||||
* - RoundBlockSizeMode via new RoundBlockSizeModeMargin()
|
||||
*
|
||||
* v4.x :
|
||||
* - Encoding via string 'UTF-8'
|
||||
* - ECC via new ErrorCorrectionLevel(ErrorCorrectionLevel::HIGH)
|
||||
* - Pas de RoundBlockSizeModeMargin (on ignore)
|
||||
*/
|
||||
$qr->setSize($pngSize);
|
||||
$qr->setMargin($margin);
|
||||
|
||||
// Encoding
|
||||
if (class_exists(\Endroid\QrCode\Encoding\Encoding::class)) {
|
||||
// v5
|
||||
$qr->setEncoding(new \Endroid\QrCode\Encoding\Encoding('UTF-8'));
|
||||
} else {
|
||||
// v4
|
||||
if (method_exists($qr, 'setEncoding')) {
|
||||
$qr->setEncoding('UTF-8');
|
||||
}
|
||||
}
|
||||
|
||||
// Error correction
|
||||
if (class_exists(\Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelHigh::class)) {
|
||||
// v5
|
||||
$qr->setErrorCorrectionLevel(new \Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelHigh());
|
||||
} elseif (class_exists(\Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevel::class)) {
|
||||
// v4
|
||||
$qr->setErrorCorrectionLevel(
|
||||
new \Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevel(
|
||||
\Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevel::HIGH
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
// Round blocks (v5 uniquement)
|
||||
if (
|
||||
method_exists($qr, 'setRoundBlockSizeMode') &&
|
||||
class_exists(\Endroid\QrCode\RoundBlockSizeMode\RoundBlockSizeModeMargin::class)
|
||||
) {
|
||||
$qr->setRoundBlockSizeMode(new \Endroid\QrCode\RoundBlockSizeMode\RoundBlockSizeModeMargin());
|
||||
}
|
||||
|
||||
// Écriture PNG / SVG
|
||||
$pngWriter = new PngWriter();
|
||||
$svgWriter = new SvgWriter();
|
||||
$png = $pngWriter->write($qr);
|
||||
$svg = $svgWriter->write($qr);
|
||||
|
||||
// Sauvegarde
|
||||
$pngPath = $publicDir . '/' . $basename . '.png';
|
||||
$svgPath = $publicDir . '/' . $basename . '.svg';
|
||||
$png->saveToFile($pngPath);
|
||||
$svg->saveToFile($svgPath);
|
||||
|
||||
echo "✅ QR codes générés :\n";
|
||||
echo "PNG : " . realpath($pngPath) . "\n";
|
||||
echo "SVG : " . realpath($svgPath) . "\n";
|
||||
Reference in new issue
Block a user