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

Základné pojmy

Onboarding sa opisuje ako toky zoradených krokov. Každý krok sám rozhodne, či je dokončený — alebo vylúčený — podľa subjektu, takže postup vždy vychádza z aktuálnych údajov a nikdy sa neukladá.

  • OnboardingManager — centrálne úložisko pomenovaných tokov, resolvera a perzistentného store. Vytvára sa ako singleton a je dostupný cez fasádu Onboarding.
  • Flow — pomenovaná, zoradená sada krokov. Vracia celkový postup, aktuálny krok, sekcie a súhrn pripravený pre JSON.
  • Step — jedna úloha onboardingu. O jej dokončení a vylúčení rozhodujú closures alebo deklaratívne pomocníky, ktoré dostanú subjekt.
  • GetsOnboarded — trait pre Eloquent modely, ktorý nájde tok modelu a naviaže naň model.
  • Subjekt — to, voči čomu sa tok vyhodnocuje: Eloquent Model alebo akýkoľvek Authenticatable. Bez explicitného subjektu sa použije prihlásený používateľ.

Na prvý pohľad

use RoundlyConsulting\Onboarding\Facades\Onboarding;
use RoundlyConsulting\Onboarding\Flow;
use RoundlyConsulting\Onboarding\Step;

// Register once (e.g. in a service provider's boot()).
Onboarding::register(Flow::make('Profile Onboarding')->of([
    Step::make('Upload photo')->key('photo')->cta('Upload now')
        ->route('profile.photo')
        ->completeWhenFilled('avatar_path'),
    Step::make('Add a bio')->key('bio')->optional()
        ->completeWhenFilled('bio'),
]));

// Read live progress for any subject.
$flow = Onboarding::for($user);       // a copy bound to $user — or $user->onboarding()
$flow?->percentageCompleted();        // float
$flow?->currentStep();                // ?Step to resume on
$flow?->toArray();                    // JSON-ready summary for a frontend

Bezstavový návrh

Nič sa neukladá — žiadne tabuľky, príznaky ani cache postupu. Zmeníte pravidlo kroku a postup každého používateľa to zohľadní pri ďalšom čítaní. Čítanie tiež nikdy neodosiela udalosti; robí to len explicitné volanie record(). Ak si chcete pamätať skrytie krokov alebo čas dokončenia, zapojte vlastný OnboardingStore — pozrite si Perzistencia.

Predvolené správanie

  • Krok bez pravidla dokončenia je dokončený; krok bez pravidla vylúčenia nie je nikdy vylúčený.
  • Prázdny tok sa považuje za dokončený: isCompleted() vráti true a percentageCompleted() 100.0.
  • Pravidlá dostanú naviazaný subjekt alebo null, preto píšte closures bezpečne voči null — ?User $user a $user?->… — ako všetky príklady v tejto dokumentácii.
  • Voliteľné kroky sa započítavajú do percentageCompleted(), ale nikdy neblokujú isCompleted().

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.