NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
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ťPayloadKedy
EventCreatedEvent $event, ?Model $actorVytvorené (koncept).
EventUpdatedEvent $event, list<string> $changed, ?Model $actor, bool $silentZmenené polia (category, labels pri zmene štítkov).
EventDeleted / EventRestoredEvent $event, ?Model $actor (+ bool $force)—
EventPublished / EventUnpublished / EventCompletedEvent $event, ?Model $actor—
EventPostponed / EventCancelledEvent $event, ?string $reason, ?Model $actor, bool $silent (+ list $releasedHolds)releasedHolds: RSVP, ktorých rezervácie zrušenie uvoľnilo.
EventRescheduledEvent $event, CarbonImmutable $previousStartsAt, ?string $reason, ?Model $actor, bool $silent—
EventMovedOnlineEvent $event, ?Model $actor, bool $silentOhlásené podujatie prešlo online (nikdy koncept).
EventStatusChangedEvent $event, ?string $transition, $from, $to, ?Model $actor, bool $silentKaždá zmena stavu.
OrganizerTransferredEvent $event, Model $from, Model $to, ?Model $actor—
PosterChangedEvent $event, ?Media $poster, ?Model $actorNastavený alebo odstránený.
VenueCreated / VenueDeleted / VenueRestored · VenueUpdatedVenue $venue, ?Model $actor (+ list<string> $changed)—
VenueGeocoded / VenueGeocodingFailedVenue $venue—
TierCreated / TierDeleted / TierRestored · TierUpdatedAdmissionTier $tier, ?Model $actor (+ list<string> $changed)—
RsvpChangedRsvp $rsvp, ?RsvpStatus $from, ?Model $actorKaždá zmena stavu RSVP.
AttendeeConfirmedRsvp $rsvp, bool $latePrešlo do going (late: platba po vypršaní rezervácie).
AttendeeWaitlisted / AttendeePromoted / RsvpHoldExpiredRsvp $rsvp—
RsvpHeldRsvp $rsvp, Money $amount, ?PaymentRequest $paymentRequestPlatené miesto je rezervované — s checkoutom, ktorý balík uložil, alebo bez neho (platbu vyberte inak).
RsvpPaymentRequestDiscardedRsvp $rsvp, PaymentRequest $paymentRequestCheckout pre rezerváciu, ktorá sa medzitým zmenila — zrušte ho u poskytovateľa.
RsvpPaymentRequestFailedRsvp $rsvp, Throwable $exceptionCollector vyhodil výnimku.
RsvpCancelledRsvp $rsvp, bool $wasPaidOdišiel niekto s miestami — platené vráťte.
AttendeeCheckedIn · CheckInUndoneCheckInResult $result · Rsvp $rsvp, ?Model $actorPrvé skenovanie alebo ručný check-in · zrušenie.
CoHostAdded / CoHostRemovedEvent $event, Model $host, ?Model $actor—
InvitationSentEventInvitation $invitation, string $token, ?string $messageOdoslaná 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 · InvitationRevokedEventInvitation $invitation (+ Rsvp $rsvp · + ?Model $actor)—
RemindersDispatchedEvent $event, string $offset, int $recipientsSweep 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 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.