Fasáda Qr
RoundlyConsulting\Qr\Facades\Qr je odporúčaný vstupný bod (automaticky dostupný aj ako alias Qr). Metódy pre payloady vracajú nemenný builder PendingQr; svg(), matrix(), info() a fits() odpovedajú jedným volaním:
use RoundlyConsulting\Qr\DataTransferObjects\QrOptions;
use RoundlyConsulting\Qr\Enums\ErrorCorrection;
use RoundlyConsulting\Qr\Facades\Qr;
// Entry points — each returns an immutable PendingQr builder
Qr::make($stringOrPayload); // a raw string becomes a Text payload
Qr::text('Table 12 — scan to order');
Qr::url('https://example.com');
Qr::wifi('Clinic Guest', 'guest-password');
Qr::otpauth($setup->provisioningUri);
Qr::epc($payment); // unset version/charset from config
Qr::payBySquare($document); // unset version/deburr from config
// One-call shortcuts — no builder
$svg = Qr::svg('https://example.com', new QrOptions(size: 200)); // Svg
$matrix = Qr::matrix('HELLO WORLD'); // QrMatrix
$info = Qr::info('hello', new QrOptions(errorCorrection: ErrorCorrection::High)); // EncodingInfo
$fits = Qr::fits($request->input('text')); // boolPrehľad metód
| Metóda | Vracia | Čo robí |
|---|---|---|
make(string|Payload $data) | PendingQr | Ľubovoľný payload — vlastná implementácia Payload alebo reťazec (stane sa z neho Text). |
text($text) | PendingQr | Obyčajný text; text pripomínajúci otpauth alebo Wi-Fi sa považuje za tajomstvo. |
url($url, $schemes = ['http', 'https']) | PendingQr | Odkaz; iné schémy len vtedy, keď ich povolíte (povolená URL otpauth alebo Wi-Fi je Secret). |
email($to, $subject, $body) | PendingQr | Kód mailto:. |
phone($number) | PendingQr | Kód tel:. |
sms($number, $message, SmsFormat $format) | PendingQr | SMSTO: alebo sms: (predvolene Smsto). |
wifi($ssid, $password, WifiSecurity $security, $hidden) | PendingQr | Prístup k Wi-Fi (predvolene WPA) — vždy Secret. |
vcard(VCard $card) | PendingQr | Kontakt vo formáte vCard 3.0. |
geo($latitude, $longitude) | PendingQr | Poloha geo:. |
otpauth(string|Otpauth $uriOrPayload) | PendingQr | Kód na aktiváciu 2FA — URI bez zmeny, citlivosť uzamknutá na Secret. |
epc(EpcPayment $payment) | PendingQr | SEPA úhrada; nenastavené polia version/charset z konfigurácie. |
payBySquare(PayBySquare $document) | PendingQr | PAY by square; nenastavené polia version/deburr z konfigurácie. |
svg($data, ?QrOptions $options) | Svg | Vykreslenie jedným volaním. |
matrix($data, ?QrOptions $options) | QrMatrix | Zakódovanie jedným volaním, bez vykreslenia. |
info($data, ?QrOptions $options) | EncodingInfo | Ako by sa dáta zakódovali — verzia, úroveň, maska, segmenty, bitový rozpočet. |
fits($data, ?ErrorCorrection $level, ?int $maxVersion, ?Segmentation $segmentation) | bool | Či sa dáta dajú zakódovať — bez zostavenia symbolu. |
Platobné payloady dostanú nenastavené polia version, charset, strictCharset alebo deburr z konfigurácie bez ohľadu na to, ktorým vstupným bodom prišli — make(), svg(), matrix(), epc() / payBySquare() alebo <x-qr-code>.
Zmestí sa to?
Qr::fits() odpovie na otázku „dá sa to zakódovať?“ bez zostavenia symbolu — dosť lacno na formulár, náhľad aj kontrolu pred zaradením do fronty. Nenastavené argumenty preberú požiadavky payloadu a potom konfiguráciu (teda nastavenia, s ktorými by sa dáta naozaj zakódovali), takže po výsledku true už nikdy nepríde DataTooLongException:
use RoundlyConsulting\Qr\Enums\{ErrorCorrection, Segmentation};
Qr::fits($request->input('text')); // configured level + version window
Qr::fits($text, ErrorCorrection::Medium, maxVersion: 13); // explicit level and ceiling
Qr::fits($digits, segmentation: Segmentation::Byte);
Qr::fits($epcPayment); // EPC's own cap (v13, level M) applies
Qr::url($link)->errorCorrection('H')->version(3)->fits(); // fluent: the builder's current settingsPre vstup nad 7089 bajtov alebo nad kapacitu povoleného rozsahu verzií vráti false. maxVersion mimo 1–40 alebo prepísanie nastavenia, ktoré platobný payload uzamkol (napríklad úroveň pri EPC), vyhodí InvalidOptionException presne tak ako vykreslenie. Pravidlo FitsInQrCode je validačnou podobou tej istej kontroly — pozrite Validačné pravidlá a cast.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.