提供 Twig 擴充、快取、多種輸出格式,整合度最高。
composer require endroid/qrcode-bundle
// app/AppKernel.php new Endroid\Bundle\QrCodeBundle\EndroidQrCodeBundle(),
# app/config/routing.yml
EndroidQrCodeBundle:
resource: "@EndroidQrCodeBundle/Controller/"
type: annotation
prefix: /qrcode
endroid_qr_code:
size: 100
padding: 10
extension: gif
error_correction_level: high
foreground_color: { r: 0, g: 0, b: 0, a: 0 }
background_color: { r: 255, g: 255, b: 255, a: 0 }
# label: "My label"
# labelFontSize: 16
use Endroid\QrCode\QrCode;
public function qrAction($text)
{
$qrCode = new QrCode($text);
$qrCode->setSize(300);
$qrCode->setPadding(10);
$qrCode->setErrorCorrectionLevel('high');
// 直接輸出圖片
$response = new Response($qrCode->writeString(), 200, [
'Content-Type' => $qrCode->getContentType(),
]);
return $response;
// 或儲存檔案
// $qrCode->writeFile(__DIR__ . '/../../../web/qrcode.png');
}
$qrCode->setLogoPath($logoPath); $qrCode->setLogoWidth(50);data_uri 或檔案下載連結。