---
title: "Builder a možnosti — QR for Laravel | Roundly"
description: "Nemenný builder PendingQr — korekcia chýb, verzie, masky, segmentácia, štýly, formulár QrOptions a priorita nastavení."
url: https://roundly-consulting.com/sk/open-source/navody/qr-for-laravel/builder-a-moznosti
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[QR for Laravel](https://roundly-consulting.com/sk/open-source/navody/qr-for-laravel.md)

# 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:

```php
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

| Skupina | Metódy |
| --- | --- |
| Kódovanie | errorCorrection(ErrorCorrection\|string), version(int), versions(int, int), mask(?int), boostErrorCorrection(bool = true), eci(EciMode), segmentation(Segmentation), kanji(bool = true) |
| Vykreslenie | size(?int), margin(int), foreground(string), background(string), moduleStyle(ModuleStyle, ?float $radius), finderStyle(FinderStyle, ?string $color), title(?string), description(?string), xmlDeclaration(bool = true) |
| Politika | sensitivity(Sensitivity), withOptions(QrOptions) |
| Terminály | matrix(): 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():

```php
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:

```php
new QrOptions(                        // every field nullable; null = not set (payload / config decide)
                                      // only one of minVersion/maxVersion: the other bound comes from
                                      // the builder, else qr.versions.*, narrowed to the given bound
                                      // (config 5..12 + maxVersion: 3 → 3..3) so it never conflicts
    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 payload (EPC: úroveň M, režim byte, bez ECI, bez zvyšovania; PAY by square: jeden alfanumerický segment, bez ECI; 2FA seed otpauth — Qr::otpauth(), prípadne text alebo URL s URI otpauth: citlivosť Secret), pri prepísaní inou hodnotou vyhodia pri terminálnom volaní InvalidOptionException::lockedByPayload() (dôvod locked\_by\_payload) — rovnaká hodnota nič nemení.

## Titulok a popis

Prístupný titulok je predvolene preklad qr::qr.title („QR code“, po slovensky „QR kód“); 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

| Enum | Hodnoty |
| --- | --- |
| `ErrorCorrection` | Low (L), Medium (M), Quartile (Q), High (H) — recoveryPercent(), stronger(), tryFromInput() |
| `EciMode` | Auto, Always, Never |
| `Segmentation` | Optimal, Single, Byte |
| `ModuleStyle` | Square, Rounded, Dots |
| `FinderStyle` | Square, Rounded |
| `DataUriEncoding` | Percent, Base64 |
| `Sensitivity` | Public, 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

```php
$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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/qr-for-laravel.md)
