Všetky balíky
Events for Laravel
Doménové udalosti
Každá udalosť je final readonly trieda v RoundlyConsulting\Events\Events, implementuje ShouldDispatchAfterCommit — vrátený zápis nespustí nič — a nesie modely. Žiadna sama nevysiela; ak vysielate z listenera, vykresľujte referencie, nikdy názvy tried.
use Illuminate\Support\Facades\Event as EventBus; // Models\Event shadows Laravel's facade name
use RoundlyConsulting\Events\Events\AttendeeCheckedIn;
use RoundlyConsulting\Events\Events\RsvpCancelled;
EventBus::listen(RsvpCancelled::class, function (RsvpCancelled $cancelled): void {
if ($cancelled->wasPaid) {
// refund $cancelled->rsvp->payment_reference at your provider
}
});
EventBus::listen(AttendeeCheckedIn::class, function (AttendeeCheckedIn $in): void {
logger()->info('door scan', ['event' => $in->result->rsvp->event->uuid, 'first' => $in->result->firstCheckIn]);
});Fasádu Laravelu importujte pod iným názvom — Models\Event z balíka zakrýva Event. Listenery vidia potvrdené riadky.
| Udalosť | Payload | Kedy |
|---|---|---|
EventCreated | Event $event, ?Model $actor | Vytvorené (koncept). |
EventUpdated | Event $event, list<string> $changed, ?Model $actor, bool $silent | Zmenené polia (category, labels pri zmene štítkov). |
EventDeleted / EventRestored | Event $event, ?Model $actor (+ bool $force) | — |
EventPublished / EventUnpublished / EventCompleted | Event $event, ?Model $actor | — |
EventPostponed / EventCancelled | Event $event, ?string $reason, ?Model $actor, bool $silent (+ list $releasedHolds) | releasedHolds: RSVP, ktorých rezervácie zrušenie uvoľnilo. |
EventRescheduled | Event $event, CarbonImmutable $previousStartsAt, ?string $reason, ?Model $actor, bool $silent | — |
EventMovedOnline | Event $event, ?Model $actor, bool $silent | Ohlásené podujatie prešlo online (nikdy koncept). |
EventStatusChanged | Event $event, ?string $transition, $from, $to, ?Model $actor, bool $silent | Každá zmena stavu. |
OrganizerTransferred | Event $event, Model $from, Model $to, ?Model $actor | — |
PosterChanged | Event $event, ?Media $poster, ?Model $actor | Nastavený alebo odstránený. |
VenueCreated / VenueDeleted / VenueRestored · VenueUpdated | Venue $venue, ?Model $actor (+ list<string> $changed) | — |
VenueGeocoded / VenueGeocodingFailed | Venue $venue | — |
TierCreated / TierDeleted / TierRestored · TierUpdated | AdmissionTier $tier, ?Model $actor (+ list<string> $changed) | — |
RsvpChanged | Rsvp $rsvp, ?RsvpStatus $from, ?Model $actor | Každá zmena stavu RSVP. |
AttendeeConfirmed | Rsvp $rsvp, bool $late | Prešlo do going (late: platba po vypršaní rezervácie). |
AttendeeWaitlisted / AttendeePromoted / RsvpHoldExpired | Rsvp $rsvp | — |
RsvpHeld | Rsvp $rsvp, Money $amount, ?PaymentRequest $paymentRequest | Platené miesto je rezervované — s checkoutom, ktorý balík uložil, alebo bez neho (platbu vyberte inak). |
RsvpPaymentRequestDiscarded | Rsvp $rsvp, PaymentRequest $paymentRequest | Checkout pre rezerváciu, ktorá sa medzitým zmenila — zrušte ho u poskytovateľa. |
RsvpPaymentRequestFailed | Rsvp $rsvp, Throwable $exception | Collector vyhodil výnimku. |
RsvpCancelled | Rsvp $rsvp, bool $wasPaid | Odišiel niekto s miestami — platené vráťte. |
AttendeeCheckedIn · CheckInUndone | CheckInResult $result · Rsvp $rsvp, ?Model $actor | Prvé skenovanie alebo ručný check-in · zrušenie. |
CoHostAdded / CoHostRemoved | Event $event, Model $host, ?Model $actor | — |
InvitationSent | EventInvitation $invitation, string $token, ?string $message | Odoslaná alebo odoslaná znova — a opäť, s novým tokenom, pre každú čakajúcu pozvánku konceptu pri jeho zverejnení. Token nedávajte do logov; listenery vo fronte šifrujte. |
InvitationAccepted · InvitationDeclined · InvitationRevoked | EventInvitation $invitation (+ Rsvp $rsvp · + ?Model $actor) | — |
RemindersDispatched | Event $event, string $offset, int $recipients | Sweep odoslal pripomienky pre jeden posun. |
- Balík počúva LifecycleTransitioning a LifecycleTransitioned z lifecycle — SEQUENCE, dôsledky zrušenia, udalosti fáz vyššie — a vlastné udalosti kvôli notifikáciám. Podvrhujte len udalosti, ktoré overujete; prečo, vysvetľuje Testovanie.
- InvitationSent nesie token v čitateľnej podobe: nedávajte ho do logov a listenery vo fronte šifrujte (ShouldBeEncrypted).
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.