---
title: "Konfigurácia — Lifecycle for Laravel | Roundly"
description: "Každý konfiguračný kľúč, predvolená hodnota a env premenná — typy kľúčov, subjekty, striktné zápisy, aktéri, transakcie, história a plány."
url: https://roundly-consulting.com/sk/open-source/navody/lifecycle-for-laravel/konfiguracia
language: sk
---

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

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

# Konfigurácia

Každý kľúč má predvolenú hodnotu, takže publikovanie config/lifecycle.php je voliteľné. Publikovaný súbor v plnom znení:

```php
return [
    'key_type' => env('LIFECYCLE_KEY_TYPE', 'bigint'),
    'actor_key_type' => env('LIFECYCLE_ACTOR_KEY_TYPE', 'bigint'),

    'models' => [
        'state' => LifecycleState::class,
        'transition' => LifecycleTransition::class,
        'schedule' => LifecycleSchedule::class,
    ],

    'resources' => [
        'actor' => TransitionActorResource::class,
    ],

    'subjects' => [],

    'strict_writes' => env('LIFECYCLE_STRICT_WRITES', true),

    'actor' => [
        'from_auth' => env('LIFECYCLE_ACTOR_FROM_AUTH', true),
        'guard' => env('LIFECYCLE_ACTOR_GUARD'),
    ],

    'transactions' => [
        'attempts' => 3,
        'mysql_read_committed' => env('LIFECYCLE_MYSQL_READ_COMMITTED', true),
    ],

    'history' => [
        'store_payload' => env('LIFECYCLE_HISTORY_STORE_PAYLOAD', true),
        'max_context_bytes' => 16384,
        'reason_max_length' => 1000,
        'purge_on_force_delete' => env('LIFECYCLE_HISTORY_PURGE_ON_FORCE_DELETE', true),
        'prune_after_days' => env('LIFECYCLE_HISTORY_PRUNE_AFTER_DAYS'),
    ],

    'rollback' => [
        'default_window' => env('LIFECYCLE_ROLLBACK_DEFAULT_WINDOW'),
        'max_steps' => 50,
    ],

    'schedules' => [
        'batch_size' => 500,
        'max_per_run' => 10000,
        'max_attempts' => 5,
        'retry_after' => '5 minutes',
        'queue' => [
            'enabled' => env('LIFECYCLE_QUEUE_SWEEPS', false),
            'connection' => env('LIFECYCLE_QUEUE_CONNECTION'),
            'name' => env('LIFECYCLE_QUEUE'),
        ],
        'prune_after_days' => env('LIFECYCLE_SCHEDULES_PRUNE_AFTER_DAYS', 30),
    ],

    'rate_limits' => [
        'prefix' => 'lifecycle',
    ],

    'graph' => [
        'default_format' => 'mermaid',
    ],
];
```

## Všetky kľúče

| Kľúč | Predvolené | Env | Účel |
| --- | --- | --- | --- |
| `key_type` | bigint | `LIFECYCLE_KEY_TYPE` | Typ id stĺpcov subjektu, ktoré vytvoria migrácie: bigint, uuid alebo ulid (bez ohľadu na veľkosť písmen). Nastavte pred migráciou; iná hodnota vyhodí výnimku. |
| `actor_key_type` | bigint | `LIFECYCLE_ACTOR_KEY_TYPE` | Typ id stĺpcov aktéra (kto vykonal prechod, zmrazil, naplánoval): bigint, uuid alebo ulid; iná hodnota vyhodí výnimku. |
| `models.state` | LifecycleState | — | Nahradí model záznamu stavu vašou podtriedou (musí rozširovať LifecycleState). |
| `models.transition` | LifecycleTransition | — | Nahradí model histórie vašou podtriedou (musí rozširovať LifecycleTransition). |
| `models.schedule` | LifecycleSchedule | — | Nahradí model plánov vašou podtriedou (musí rozširovať LifecycleSchedule). |
| `resources.actor` | TransitionActorResource | — | Vykreslí aktéra riadku histórie ako {id, type}, kde type je krátky názov triedy modelu aktéra. Nahraďte ho vlastnou podtriedou JsonResource, ktorá dostane TransitionRecord; prázdna hodnota alebo null znamená resource balíka. |
| `subjects` | \[\] | — | Vaše modely so životným cyklom. lifecycle:validate bez argumentov overí každý cyklus každého uvedeného modelu vrátane stĺpcov, ktoré definícia menuje. Modely fungujú aj bez uvedenia. |
| `strict_writes` | true | `LIFECYCLE_STRICT_WRITES` | Uloženie priamo zmeneného atribútu cyklu vyhodí DirectStateWriteException. |
| `actor.from_auth` | true | `LIFECYCLE_ACTOR_FROM_AUTH` | Bez by() je aktérom prihlásený používateľ. |
| `actor.guard` | null | `LIFECYCLE_ACTOR_GUARD` | Auth guard pre from\_auth (null = predvolený guard). |
| `transactions.attempts` | 3 | — | Koľkokrát sa transakcia po deadlocku zopakuje (1–10) — len ak vonkajšiu transakciu otvoril balík. |
| `transactions.mysql_read_committed` | true | `LIFECYCLE_MYSQL_READ_COMMITTED` | MySQL/MariaDB: transakcia, ktorá počíta kvótu, beží na READ COMMITTED. Vypnuté: zostane vaša izolácia a počet kvóty použije zamykacie čítania. |
| `history.store_payload` | true | `LIFECYCLE_HISTORY_STORE_PAYLOAD` | Uloží zvalidovaný payload (bez kľúčov zo sensitive()) do riadku histórie. |
| `history.max_context_bytes` | 16384 | — | Limit veľkosti JSON uloženého kontextu (1024–1048576); väčší sa zamietne ako invalid\_payload. |
| `history.reason_max_length` | 1000 | — | Dlhšie dôvody sa zamietnu ako reason\_too\_long — pri prechodoch, plánoch aj rollbackoch; dlhší dôvod zmrazenia vyhodí InvalidLifecycleUsageException (1–10000). |
| `history.purge_on_force_delete` | true | `LIFECYCLE_HISTORY_PURGE_ON_FORCE_DELETE` | Trvalé zmazanie subjektu zmaže aj jeho záznamy, históriu a plány. |
| `history.prune_after_days` | null | `LIFECYCLE_HISTORY_PRUNE_AFTER_DAYS` | Predvolená hodnota lifecycle:prune pre riadky histórie (1–36500; null alebo prázdna hodnota = nikdy). Limity čistenie prežijú, staršie body rollbacku a idempotentné kľúče nie. |
| `rollback.default_window` | null | `LIFECYCLE_ROLLBACK_DEFAULT_WINDOW` | Ako dlho sa dá prechod vrátiť, ak nedeklaruje vlastné okno („7 days“; null alebo prázdna hodnota = bez obmedzenia). |
| `rollback.max_steps` | 50 | — | Najviac riadkov, ktoré vráti jedno rollbackTo() (1–1000). |
| `schedules.batch_size` | 500 | — | Riadky na jednu dávku sweepu (1–10000). |
| `schedules.max_per_run` | 10000 | — | Najviac plánov, ktoré spracuje jeden beh sweepu (1–1000000). |
| `schedules.max_attempts` | 5 | — | Počet pokusov, kým sa opakovateľný naplánovaný prechod označí ako zlyhaný (1–100). |
| `schedules.retry_after` | 5 minutes | — | Odklad, po ktorom sa zamietnutý, chybný alebo zmrazený naplánovaný prechod skúsi znova. Prázdna hodnota sa považuje za nenastavenú → 5 minutes. |
| `schedules.queue.enabled` | false | `LIFECYCLE_QUEUE_SWEEPS` | Sweep odošle jeden job na každý splatný plán namiesto behu priamo. |
| `schedules.queue.connection` | null | `LIFECYCLE_QUEUE_CONNECTION` | Pripojenie fronty pre tieto joby. |
| `schedules.queue.name` | null | `LIFECYCLE_QUEUE` | Názov fronty pre tieto joby. |
| `schedules.prune_after_days` | 30 | `LIFECYCLE_SCHEDULES_PRUNE_AFTER_DAYS` | Predvolená hodnota lifecycle:prune pre dokončené plány (1–36500; null alebo prázdna hodnota = nikdy). |
| `rate_limits.prefix` | lifecycle | — | Prefix kľúčov rate limitera pre prechody s rateLimit(); započítava sa do limitu 250 znakov pre kľúč. |
| `graph.default_format` | mermaid | — | Presne mermaid alebo dot — formát grafu, ak nie je zadaný. |

## Striktné hodnoty

Každá hodnota sa overí pri čítaní, takže preklep nikdy potichu nevráti predvolenú hodnotu:

- Prázdna hodnota (LIFECYCLE\_X= alebo len medzery) sa považuje za nenastavenú: platí predvolená hodnota kľúča a kľúč, ktorý pripúšťa null (LIFECYCLE\_HISTORY\_PRUNE\_AFTER\_DAYS=, LIFECYCLE\_SCHEDULES\_PRUNE\_AFTER\_DAYS=, LIFECYCLE\_ROLLBACK\_DEFAULT\_WINDOW=), sa číta ako nenastavený (null).
- Boolean hodnoty akceptujú true/false/1/0/yes/no/on/off bez ohľadu na veľkosť písmen (prázdna hodnota dostane predvolenú, takže LIFECYCLE\_STRICT\_WRITES= striktné zápisy ponechá zapnuté); akákoľvek iná hodnota vyhodí InvalidLifecycleConfigurationException s názvom kľúča aj hodnotou.
- key\_type a actor\_key\_type akceptujú len bigint, uuid alebo ulid (bez ohľadu na veľkosť písmen; prázdna hodnota sa číta ako bigint); čokoľvek iné vyhodí počas migrate a about InvalidConfigurationException z toolkitu — nie LifecycleException, takže ju catch (LifecycleException) nezachytí.
- Čísla musia byť kanonické celé čísla: '5.5', '+5' a '1e3' vyhodia výnimku. Číslo alebo interval mimo rozsahu vyhodí InvalidLifecycleConfigurationException.
- graph.default\_format musí byť presne mermaid alebo dot. Vymenený model (models.\*) musí byť existujúca trieda, ktorá rozširuje model balíka, inak InvalidLifecycleConfigurationException — nikdy sa nevráti k modelu balíka.
- resources.actor musí byť inštanciovateľná podtrieda JsonResource (prázdna hodnota alebo null je resource balíka), inak pri vykreslení prvého riadku histórie s aktérom vyhodí InvalidLifecycleConfigurationException (notAResource).
- Hodnota vyhodí výnimku, keď ju niečo prvýkrát prečíta. php artisan about číta typy kľúčov, väčšinu boolean hodnôt, modely aj subjekty, preto ho spúšťajte po každej zmene konfigurácie — preklep sa ukáže hneď.

## Registrácia subjektov

Svoje modely so životným cyklom uveďte v subjects, aby mal lifecycle:validate v CI čo kontrolovať. Modely fungujú aj bez uvedenia; ak nie je uvedený žiadny, lifecycle:validate --strict zlyhá namiesto prázdneho úspechu:

```php
// config/lifecycle.php
'subjects' => [
    App\Models\Listing::class,
    App\Models\Order::class,
],
```

## Prostredie (env)

Všetky env premenné, ktoré konfigurácia číta, s predvolenými hodnotami:

```bash
LIFECYCLE_KEY_TYPE=bigint
LIFECYCLE_ACTOR_KEY_TYPE=bigint
LIFECYCLE_STRICT_WRITES=true
LIFECYCLE_ACTOR_FROM_AUTH=true
LIFECYCLE_ACTOR_GUARD=
LIFECYCLE_MYSQL_READ_COMMITTED=true
LIFECYCLE_HISTORY_STORE_PAYLOAD=true
LIFECYCLE_HISTORY_PURGE_ON_FORCE_DELETE=true
LIFECYCLE_HISTORY_PRUNE_AFTER_DAYS=
LIFECYCLE_ROLLBACK_DEFAULT_WINDOW=
LIFECYCLE_QUEUE_SWEEPS=false
LIFECYCLE_QUEUE_CONNECTION=
LIFECYCLE_QUEUE=
LIFECYCLE_SCHEDULES_PRUNE_AFTER_DAYS=30
```

## 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/lifecycle-for-laravel.md)
