NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
QR for Laravel

Builder a možnosti

Qr::…() vracia nemenný PendingQr: každé volanie vráti upravenú kópiu, takže nakonfigurovaný builder môžete bezpečne použiť opakovane. Všetky možnosti naraz:

use RoundlyConsulting\Qr\Enums\{EciMode, ErrorCorrection, FinderStyle, ModuleStyle, Segmentation, Sensitivity};

$svg = Qr::text('ABC-123')
    ->errorCorrection(ErrorCorrection::High)   // or 'H'
    ->versions(2, 10)                          // or ->version(5)
    ->mask(3)                                  // null = automatic
    ->boostErrorCorrection(false)
    ->eci(EciMode::Never)
    ->segmentation(Segmentation::Optimal)      // Optimal | Single | Byte
    ->kanji()
    ->size(null)                               // responsive (no width/height)
    ->margin(4)
    ->foreground('#1a1a1a')
    ->background('transparent')
    ->moduleStyle(ModuleStyle::Rounded, 0.35)
    ->finderStyle(FinderStyle::Rounded, '#0a58ca')
    ->title('Order ABC-123')
    ->description('Opens the order page')
    ->xmlDeclaration()
    ->sensitivity(Sensitivity::Public)
    ->svg();

Prehľad metód

SkupinaMetódy
KódovanieerrorCorrection(ErrorCorrection|string), version(int), versions(int, int), mask(?int), boostErrorCorrection(bool = true), eci(EciMode), segmentation(Segmentation), kanji(bool = true)
Vykresleniesize(?int), margin(int), foreground(string), background(string), moduleStyle(ModuleStyle, ?float $radius), finderStyle(FinderStyle, ?string $color), title(?string), description(?string), xmlDeclaration(bool = true)
Politikasensitivity(Sensitivity), withOptions(QrOptions)
Terminálymatrix(): QrMatrix, info(): EncodingInfo, fits(): bool (uspel by matrix()? — bez zostavenia symbolu), svg(): Svg, toDataUri(DataUriEncoding), toHtml(), toResponse($request), __toString(), payload(): Payload

Settery validujú okamžite — veľkosť, okraj, maska alebo polomer mimo rozsahu vyhodí InvalidOptionException, neznáma farba InvalidColorException.

Nastavenia jedným volaním

Odovzdajte DTO QrOptions do Qr::svg() / Qr::matrix() / Qr::info() alebo ho aplikujte na existujúci builder cez withOptions():

use RoundlyConsulting\Qr\DataTransferObjects\QrOptions;

$svg = Qr::svg('https://example.com', new QrOptions(size: 200, errorCorrection: ErrorCorrection::Medium));
$matrix = Qr::matrix('hello', new QrOptions(mask: 2));
$info = Qr::info('hello', new QrOptions(errorCorrection: ErrorCorrection::High)); // EncodingInfo
$svg = Qr::text('hi')->withOptions(new QrOptions(foreground: '#333333'))->svg();

Každé pole QrOptions je nullable; null znamená nenastavené, takže rozhodne payload alebo konfigurácia:

new QrOptions(                        // every field nullable; null = not set (payload / config decide)
    size: 200, margin: 2, errorCorrection: ErrorCorrection::Quartile, minVersion: 1, maxVersion: 10,
    mask: null, foreground: '#111111', background: 'transparent', moduleStyle: ModuleStyle::Rounded,
    finderStyle: FinderStyle::Rounded, title: 'Menu', description: null, eci: EciMode::Never,
    sensitivity: Sensitivity::Public,
);

Priorita a zámky

  • Explicitné volania buildera a withOptions() zapisujú do tých istých slotov — platí posledný zápis.
  • Potom požiadavky payloadu (PayloadRequirements).
  • Potom konfigurácia.
  • Maximálna verzia payloadu je pevný strop.
  • Nastavenia, ktoré určuje platobný štandard (EPC: úroveň M, režim byte, bez ECI, bez zvyšovania; PAY by square: jeden alfanumerický segment, bez ECI), pri prepísaní inou hodnotou vyhodia pri terminálnom volaní InvalidOptionException — rovnaká hodnota nič nemení.

Titulok a popis

Prístupný titulok je predvolene preklad qr::qr.title („QR code“); popis je predvolene preklad podľa typu payloadu (qr::qr.descriptions.*), ktorý nikdy neobsahuje tajomstvo, meno, IBAN ani sumu — kódy s URL uvádzajú len hostiteľa. Oboje prepíšete cez title() / description().

Enumy

EnumHodnoty
ErrorCorrectionLow (L), Medium (M), Quartile (Q), High (H) — recoveryPercent(), stronger(), tryFromInput()
EciModeAuto, Always, Never
SegmentationOptimal, Single, Byte
ModuleStyleSquare, Rounded, Dots
FinderStyleSquare, Rounded
DataUriEncodingPercent, Base64
SensitivityPublic, Personal, Secret — isCacheable(), cacheControl()

Každý enum je backed a má pomocné metódy z enums-for-laravel, takže ho môžete priamo použiť pre select alebo validačné pravidlo.

Kontrola kódu

$matrix = Qr::matrix('HELLO WORLD');            // QrMatrix: version(), mask(), isDark($x, $y), rows()
$info = Qr::text('HELLO WORLD')->info();        // EncodingInfo: segments, data/capacity bits, mask penalties
echo $matrix->toText();                         // debug print in the terminal

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 kryptomien

Odoslaní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.