---
title: "Rozšírenie a výnimky — Onboarding for Laravel | Roundly"
description: "Pridajte fluentné pomocníky cez makrá, poznajte všetky body rozšírenia a ošetrite typované InvalidFlowException a InvalidStoreException."
url: https://roundly-consulting.com/sk/open-source/navody/onboarding-for-laravel/rozsirenie
language: sk
---

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

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

# Rozšírenie a výnimky

Flow, Step aj OnboardingManager používajú trait Macroable z Laravelu, takže fluentné pomocníky pridáte pri štarte aplikácie bez dedenia:

```php
use RoundlyConsulting\Onboarding\Flow;
use RoundlyConsulting\Onboarding\OnboardingManager;
use RoundlyConsulting\Onboarding\Step;

// e.g. in a service provider's boot()
Step::macro('completeWhenVerified', fn () => $this->completeWhenTrue('email_verified_at'));
Flow::macro('progressLabel', fn () => round($this->percentageCompleted()).'% done');
OnboardingManager::macro('keys', fn () => $this->all()->keys());
```

```php
Step::make('Verify email')->completeWhenVerified();

$user->onboarding()?->progressLabel();   // "67% done"
Onboarding::keys();                      // Collection of registered flow keys
```

## Ďalšie body rozšírenia

- Vlastné triedy tokov — rozšírte Flow a nakonfigurujte ho v setup().
- Resolver — Onboarding::resolveUsing() vyberie tok pre subjekt.
- defaultOnboardingKey() — prepíšte ho na modeli a zvoľte jeho tok.
- Kontrakt OnboardingStore — vlastný zapojíte cez Onboarding::useStore() pre skryteľné kroky a aby sa uložené dokončenia znova neohlasovali.
- Udalosti — počúvajte StepCompleted a FlowCompleted, ukladajte postup alebo spúšťajte ďalšie akcie; listenery musia byť synchrónne a idempotentné (pozrite si Udalosti).

## Výnimky

| Výnimka | Rozširuje | Kedy vznikne |
| --- | --- | --- |
| `OnboardingException` | `InvalidArgumentException` | Základný typ výnimiek balíka. |
| `InvalidFlowException::keyMustBeString()` | `OnboardingException` | register() dostal kľúč, ktorý nie je reťazec, spolu s tokom. |
| `InvalidFlowException::notAFlowClass($class)` | `OnboardingException` | Zaregistroval sa názov triedy, ktorá nie je Flow ani jej potomok. |
| `InvalidStoreException::notAStore($class)` | `OnboardingException` | useStore() dostal triedu, ktorá neimplementuje OnboardingStore. |

```php
use RoundlyConsulting\Onboarding\Exceptions\InvalidFlowException;
use RoundlyConsulting\Onboarding\Facades\Onboarding;

try {
    Onboarding::register(SomeNonFlowClass::class);
} catch (InvalidFlowException $e) {
    // "[App\SomeNonFlowClass] is not a RoundlyConsulting\Onboarding\Flow class."
}
```

OnboardingException rozširuje InvalidArgumentException, takže existujúce bloky catch (InvalidArgumentException) fungujú ďalej.

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