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 frontendBezstavový 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 kryptomienOdoslaní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.