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

Fasáda Onboarding

Odporúčaným vstupným bodom je RoundlyConsulting\Onboarding\Facades\Onboarding: final, tenká fasáda nad singletonom OnboardingManager — centrálnym úložiskom pomenovaných tokov, resolvera pre subjekty a perzistentného store:

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

// Register flows — usually in a service provider's boot()
Onboarding::register(Flow::make('Profile Onboarding')->of([Step::make('Upload photo')]));
Onboarding::register('user', UserOnboarding::class);
Onboarding::flow('team')->add('Invite your team')->completeWhenHas('members');

// Read for a subject — every call returns its own copy, bound to that subject
Onboarding::for($user)?->percentageCompleted();
Onboarding::for($user, 'team')?->currentStep();
Onboarding::for($user)?->dismiss('add-bio');

// Choose the flow per subject
Onboarding::resolveUsing(fn ($subject) => $subject?->isAdmin() ? 'admin' : 'default');
Onboarding::resolveFor($user);

// Inspect and edit the registry
Onboarding::find('team');    // the registered definition
Onboarding::has('team');
Onboarding::all();
Onboarding::forget('team');
Onboarding::flush();

// Persistence
Onboarding::useStore(DatabaseOnboardingStore::class);
Onboarding::store();
Onboarding::hasStore();

Všetky metódy

MetódaVraciaÚčel
register($key, $flow = null)OnboardingManagerZaregistruje Flow, pole krokov alebo názov triedy Flow — s jedným argumentom pod predvolený kľúč.
flow($key)FlowVytvorí, zaregistruje a vráti prázdny tok pod kľúčom (existujúci nahradí).
for($subject, ?string $key = null)?FlowKópia toku subjektu naviazaná naň — tok pod kľúčom, bez kľúča voľba resolvera, inak predvolený tok.
find($key, $default = null)?FlowSamotná zaregistrovaná definícia (nenaviazaná), inak $default.
has($key)boolČi je pod kľúčom zaregistrovaný tok.
forget($key)OnboardingManagerOdstráni jeden tok.
flush()OnboardingManagerOdstráni všetky toky a zruší resolver.
all()Collection<string, Flow>Všetky zaregistrované toky podľa kľúča.
resolveUsing($resolver)OnboardingManagerZaregistruje closure, ktorá subjektu priradí kľúč toku.
resolveFor($subject, ?string $fallback = null)?FlowKópia toku podľa resolvera naviazaná na subjekt, inak tok pod náhradným kľúčom (default) — bez náhradného kľúča to isté ako for($subject).
useStore(OnboardingStore|string $store)OnboardingManagerNastaví perzistenciu — inštanciu alebo triedu, ktorú kontajner vytvorí pri prvom použití.
store() / hasStore()?OnboardingStore / boolPoužívaný store (z useStore(), inak z väzby v kontajneri) / či je nastavený, bez jeho vytvorenia.
Onboarding::fake()OnboardingFakeLen na fasáde: nasadí zaznamenávajúci fake — pozrite si Testovanie.

Metódy assert*() a seed*() z docblocku fasády existujú až po zavolaní Onboarding::fake() — pozrite si Testovanie.

Kópie, nie zdieľané inštancie

for(), resolveFor() aj trait modelu vracajú vlastnú kópiu zaregistrovaného toku naviazanú na subjekt — toky dvoch používateľov nikdy nezdieľajú stav a zaregistrovaná definícia zostáva nenaviazaná. Výnimkou je find(): vráti samotnú definíciu, aby ste do nej mohli pri štarte pridať kroky.

Skratky na modeli

Trait GetsOnboarded aj Flow::dismiss() idú cez ten istý manager, takže sa správajú rovnako a Onboarding::fake() ich vidí. $user->onboarding() je Onboarding::resolveFor($user, $user->defaultOnboardingKey()) — najprv resolver, predvolený kľúč modelu ako náhrada — a $user->resolvedOnboarding() je Onboarding::for($user).

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.