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

Príprava modelu

Trait GetsOnboarded pridajte každému Eloquent modelu, ktorý má sprístupniť svoj onboarding. Trait si od OnboardingManager vypýta kópiu toku modelu naviazanú na model, takže pravidlo každého kroku dostane práve tento model — a Onboarding::fake() vidí každé volanie traitu:

use Illuminate\Database\Eloquent\Model;
use RoundlyConsulting\Onboarding\Traits\GetsOnboarded;

class User extends Model
{
    use GetsOnboarded;
}

Čítanie toku modelu

$user = User::first();

$flow = $user->onboarding();                      // the resolver's flow, else defaultOnboardingKey()'s, bound to $user
$flow = $user->onboarding('admin');               // a specific flow by key
$flow = $user->onboarding('missing', new Flow()); // fallback when the key is unknown

onboarding() vráti null, ak nie je zaregistrovaný zodpovedajúci tok a nezadáte náhradný — preto príklady v tejto dokumentácii používajú ?->.

Voľba predvoleného kľúča

Model predvolene používa kľúč default. Iný zvolíte prepísaním defaultOnboardingKey() — napríklad podľa stĺpca modelu. Ak je zaregistrovaný resolver, má prednosť jeho voľba a defaultOnboardingKey() slúži ako náhrada, keď vráti null alebo neznámy kľúč:

public function defaultOnboardingKey(): string
{
    return $this->onboarding_flow ?? 'default';
}

Metódy bezpečné voči null

Trait pridáva jednoriadkové metódy, aby ste nemuseli sami reťaziť onboarding()?->…. Každá prijíma voliteľný kľúč toku; bez neho číta ten istý tok ako $user->onboarding() — podľa resolvera, inak podľa defaultOnboardingKey():

$user->hasCompletedOnboarding();        // bool — false when no flow is registered
$user->isOnboarding();                  // bool — in progress
$user->onboardingProgress();            // float — 0.0 when no flow is registered
$user->nextOnboardingStep();            // ?Step
$user->dismissOnboardingStep('add-bio'); // dismiss an optional, dismissible step (needs a store)
$user->hasCompletedOnboarding('admin'); // target a specific flow key
MetódaVraciaÚčel
onboarding(?string $key = null, ?Flow $default = null)?FlowKópia toku pod kľúčom — bez neho podľa resolvera, inak pod defaultOnboardingKey() — naviazaná na model.
resolvedOnboarding()?FlowOnboarding::for($model) — tok podľa resolvera, inak predvolený tok.
defaultOnboardingKey()stringNáhradný kľúč toku modelu, keď resolver vráti null alebo neznámy kľúč — OnboardingManager::$default (default), kým ho neprepíšete.
hasCompletedOnboarding(?string $key = null)boolTok je dokončený; false, ak nie je zaregistrovaný žiadny tok.
isOnboarding(?string $key = null)boolTok prebieha; false, ak nie je zaregistrovaný žiadny tok.
onboardingProgress(?string $key = null)floatpercentageCompleted(); 0.0, ak nie je zaregistrovaný žiadny tok.
nextOnboardingStep(?string $key = null)?StepAktuálny krok, na ktorom má používateľ pokračovať.
dismissOnboardingStep(string $step, ?string $key = null)voidSkryje voliteľný skryteľný krok; bez store, pri neznámom alebo neskryteľnom kroku nerobí nič.

V Blade šablóne

@if ($user->isOnboarding())
    <div class="onboarding-banner">
        <progress value="{{ $user->onboardingProgress() }}" max="100"></progress>
        <p>Next: {{ $user->nextOnboardingStep()?->resolvedTitle() }}</p>
    </div>
@endif

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.