Viazanie subjektu
Tok vyhodnocuje kroky voči subjektu — Eloquent Model alebo akémukoľvek Illuminate\Contracts\Auth\Authenticatable. Tok subjektu získate cez Onboarding::for():
Onboarding::for($user)?->percentageCompleted(); // the resolver's flow, else "default"
Onboarding::for($user, 'admin')?->percentageCompleted(); // a specific flow by keyOnboarding::find() vráti samotnú zaregistrovanú definíciu. Ak z nej čítate bez naviazania, použije pri čítaní prihláseného používateľa — auth()->user(). Explicitný subjekt má vždy prednosť:
// binds auth()->user() implicitly
Onboarding::find('default')?->percentageCompleted();
// an explicit subject always wins
Onboarding::for($otherUser)?->percentageCompleted();V kontexte bez autentifikácie — obyčajný unit test, job vo fronte bez používateľa — zostáva subjekt null. Pravidlá aj deklaratívne pomocníky subjekt null znesú.
Každý subjekt dostane vlastnú kópiu
Onboarding::for(), resolveFor() aj trait modelu vracajú kópiu zaregistrovaného toku — aj s kópiami krokov — naviazanú na subjekt. Toky dvoch subjektov nikdy nezdieľajú stav, ani v jednej požiadavke, jobe či dlhobežiacom workeri Octane, a zaregistrovaná definícia zostáva nenaviazaná:
$mine = Onboarding::for($user); // a copy bound to $user
$theirs = Onboarding::for($admin); // another copy, bound to $admin
$mine?->percentageCompleted(); // still evaluates $user
$user->onboarding(); // the trait returns a copy too
// find() hands back the registered definition itself — add steps to it at boot,
// but read through for() so no subject is ever bound to the shared instance
Onboarding::find('default')?->add('Invite your team');Subjekt v udalostiach
Subjekt putuje v StepCompleted a FlowCompleted ako $for. Keďže subjektom môže byť akýkoľvek Authenticatable, listenery s typom ?Model $for by mali počítať aj so subjektom, ktorý nie je Model.
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.