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

Balík je bezstavový, takže prechody sám nezachytí — aktuálny stav však ohlási, keď oň požiadate. Zavolajte record() vo vlastnom kontrolnom bode a balík odošle StepCompleted pre každý dokončený viditeľný krok a FlowCompleted, keď je dokončený celý tok. Čítanie nikdy nič neodosiela; robí to len record().

use Illuminate\Support\Facades\Event;
use RoundlyConsulting\Onboarding\Events\FlowCompleted;
use RoundlyConsulting\Onboarding\Events\StepCompleted;
use RoundlyConsulting\Onboarding\Facades\Onboarding;

Onboarding::for($user)?->record();   // announce every complete step (+ FlowCompleted when done)
$user->onboarding()?->record();      // the same through the trait

Ak odovzdáte kľúč kroku, ohlási sa len tento krok, pokiaľ je viditeľný a dokončený. FlowCompleted odošle len vtedy, keď jeho dokončením skončil celý tok — krok je povinný, bol ohlásený (store ho ešte nemá zaznamenaný) a tok je teraz dokončený. Neznámy, nedokončený alebo voliteľný krok ju nespustí nikdy:

Onboarding::for($user)?->record('upload-photo');   // announce just one step

Obsah udalostí

UdalosťVlastnostiKedy sa odošle
StepCompleted$step, $forrecord() ohlási dokončený krok, ktorý store ešte nemá zaznamenaný.
FlowCompleted$flow, $forrecord() sa zavolá, keď je celý tok dokončený; record($key) len vtedy, keď ohlásil daný povinný krok a tok je tým dokončený.

Obe udalosti sú v RoundlyConsulting\Onboarding\Events a nesú naviazaný subjekt v $for — Model, akýkoľvek Authenticatable alebo null.

Počúvanie udalostí

Event::listen(StepCompleted::class, function (StepCompleted $e): void {
    // $e->step (Step), $e->for (the subject — Model, Authenticatable or null)
});

Event::listen(FlowCompleted::class, function (FlowCompleted $e): void {
    // $e->flow (Flow), $e->for (the subject)
});

Kontrolný bod v kontroléri

public function update(Request $request): RedirectResponse
{
    $request->user()->update([
        'avatar_path' => $request->file('photo')->store('avatars'),
    ]);

    // a checkpoint of your choosing: announce the step this request may have completed
    Onboarding::for($request->user())?->record('upload-photo');

    return back();
}

Bez store každé volanie record() znova ohlási všetky dokončené kroky. Zapojte store cez Onboarding::useStore() a StepCompleted sa odošle pre každý krok len raz — pozrite si Perzistencia.

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.