Endroid QrCode (QR Kod Üretici)

artiframe add qrcode eklentisi, PHP'nin en güçlü QR kod oluşturucusu olan endroid/qr-code paketini kullanır. Standart paketin Writer ve Builder gibi karmaşık nesne örneklemeleriyle (instantiation) uğraşmanıza gerek kalmaz. src/Service/QrCode.php üzerinden tamamen akıcı (fluent) bir API ile saniyeler içinde logolu ve renkli karekodlar çizebilirsiniz.

1. Kurulum

Eklentiyi kurmak için terminalinize şu komutu girin:

terminal
$ artiframe add qrcode
Bu eklenti dışarıdan (Örn: S3 veya SMTP gibi) herhangi bir çevresel değişkene (.env) ihtiyaç duymaz. Tamamen sunucu içerisinde render işlemi yapar.
2. Temel Kullanım ve Özelleştirme

QR Kodu oluştururken QrCode::generate('İçerik') ile başlar, araya boyut/renk gibi ayarları zincirler (chain) ve son olarak ne tür bir çıktı almak istediğinizi (save, base64, output) belirtirsiniz.

Renk, Boyut ve Format Belirleme
example.php
<?php
use Src\Service\QrCode;

// Siyah arkaplanlı, sarı renkli, 500px boyutunda bir SVG formatı üret
QrCode::generate('https://artiframe.dev')
    ->size(500)
    ->margin(20)
    ->color('#FFD700', '#000000') // Önce Ön Plan (Kareler), Sonra Arka Plan
    ->format('svg')               // png (varsayılan) veya svg
    ->save('/var/www/public/qrcodes/website.svg');
3. QR Kodun Ortasına Logo Eklemek

Özellikle kurumsal kimlik için QR kodun tam merkezine marka logonuzu yerleştirebilirsiniz.

example.php
<?php
QrCode::generate('WIFI:S:MyNetwork;T:WPA;P:MyPassword;;')
    ->size(400)
    // Logo Yolu, Genişliği (px) ve Logonun arkasını şeffaf yapıp yapmama (true/false)
    ->logo(__DIR__ . '/../assets/img/logo.png', 80, true)
    ->save('wifi-qr.png');
Error Correction (Hata Toleransı): ArtiFrame, logolu QR kodların okunamama ihtimaline karşı hata düzeltme seviyesini (Error Correction Level) her zaman High (%30) olarak ayarlar. Logonuz çok büyük olsa bile cihazlar kodu rahatlıkla okuyabilir.
4. Çıktı Alma Yöntemleri (Output)

Oluşturulan grafiği diske kaydetmek zorunda değilsiniz. Tarayıcıya direkt basabilir veya HTML içinde göstermek için Base64 String formatına çevirebilirsiniz.

HTML İçine Doğrudan Gömme (Base64)
view.php
<!-- Diske kaydetmeden on-the-fly (anında) render edilen QR kod -->
<img src="<?= QrCode::generate('Bilet-No: 123456')->color('#10D99A')->base64() ?>" alt="Biletiniz">
API Endpoint Olarak Tarayıcıya Basma
QrController.php
<?php
// Route: /api/generate-qr?text=Merhaba
$text = $_GET['text'] ?? 'Varsayılan Metin';

// İlgili Content-Type (image/png) başlıklarını (headers) otomatik atar ve kodu render edip çalışmayı durdurur.
QrCode::generate($text)
    ->size(250)
    ->output();