Open source
Notifications for Laravel
composer require roundly-consulting/notifications-for-laravelPrehľad
Typované notifikácie pre Laravel aplikácie so schránkou v aplikácii a e-mailom. Každý druh notifikácie zaregistrujete raz, z ktorejkoľvek funkcie ho pošlete jedným volaním a balík pre každého príjemcu rozhodne: smie záznam ešte vidieť, chce ho a na ktorom kanáli, nie je to to isté ako pred minútou, nemá práve noc, nemá to počkať na súhrn. Pripomienky sledujú dátum a eskalujú, keď ich nikto nepotvrdí, a rovnaké pravidlá môžu platiť aj pre notifikácie iných balíkov. Licencia MIT, postavené na vlastnom notifikačnom systéme Laravelu a balíkoch Roundly crypto, enums, options a package-toolkit — bez externej notifikačnej služby.
Čo získate
Typované druhy notifikácií
Každý druh notifikácie opíšete raz — malou triedou alebo cez define() — s kategóriou, kanálmi, prioritou, oknom, subjektom a háčikmi na vykreslenie.
Schránka, ktorá sa nezahltí
Desať udalostí k jednému subjektu v rámci okna je jedna položka s počtom 10 a posledným aktérom — s filtrom podľa kontextu a počtami neprečítaných pre každý priestor.
Preferencie v rukách používateľov
Pre každý druh, kategóriu a kanál, uložené pre každého používateľa. Povinné druhy sa nedajú stlmiť a celá obrazovka nastavení sa uloží celá alebo vôbec.
E-maily, ktoré rešpektujú ľudí
Zlučovanie na začiatku alebo na konci okna, tiché hodiny v časovom pásme používateľa, denné či týždenné súhrny, diskrétne e-maily a doručenie najviac raz.
Pripomienky podľa kalendára
60, 30 a 7 dní pred dátumom — posunú sa s dátumom, obnovia sa pri predĺžení, zastavia sa pri zmazaní a eskalujú, keď ich nikto nepotvrdí.
Prístup overený pri každom kroku
Vaše vlastné policies sa pýtajú pri odoslaní, vo fronte, po tichých hodinách, v súhrne aj pri každej pripomienke — kto prístup stratil, nedostane nič.
Fasáda, DI alebo akcie
Jedna fasáda Notifications, injektovateľný manažér alebo jednoúčelové akcie — a k tomu nahrávací fake, Pest expectations a voliteľné JSON API.
Dokumentácia
Použitie
Kde sa balík hodí — schvaľovanie v SaaS, obnovy zmlúv, schránky pre viac priestorov, bezpečnostné hlásenia a notifikácie iných balíkov.
Inštalácia
Inštalácia cez Composer, publikovanie oboch sád migrácií, plánovanie notifications:sweep každú minútu, typy kľúčov a príjemca User.
Konfigurácia
Každý kľúč config/notifications.php s env premennou a predvolenou hodnotou — kľúče, tabuľky, front, schránka, e-mail, tiché hodiny, súhrny, routes.
Druhy notifikácií
Každý druh notifikácie zaregistrujete raz — trieda NotificationType alebo fluentné define() — s každým háčikom, predvolenou hodnotou a payloadom.
Modely príjemcov a subjektov
ReceivesNotifications, HasNotificationReminders a kontrakty, ktoré určia časové pásmo, členov skupiny, vlastníka alebo popis kontextu.
Fasáda Notifications
Prehľad fasády Notifications — send, type(), for($subject), inbox(), preferences(), define(), accessory, sweep a prune — so všetkými metódami.
DI a akcie
Bez fasády: injektujte NotificationsManager alebo zavolajte jednoúčelovú akciu — každá verejná akcia so signatúrou execute() a cestou cez fasádu.
Odosielanie
send(), fluentné type()->…->send(), for($subject), kontexty, idempotencia cez once(), escalate(), rozposielanie, transakcie a SendResult.
Príjemcovia a prístup
Recipients::users, role, members, owner, using a merge, group resolver a recept pre teams, prísne kontroly prístupu a revoke().
Schránka
Zlučovanie v okne, kontexty, nemenné dotazy a počty, prečítanie, archív a mazanie, resources bez názvov tried, vysielanie a kanál inbox.
Preferencie
Preferencie používateľa pre kanály, kategórie a druhy, povinné druhy, matica nastavení, update() všetko alebo nič, uloženie cez options a zámky.
Deduplikácia na začiatku alebo konci okna, životný cyklus doručenia, odoslanie najviac raz, vykreslenie, minimálny e-mail a resolver adries.
Tiché hodiny a časové pásma
Podržanie neurgentných e-mailov počas miestnych tichých hodín používateľa, určenie časového pásma, zmena času a predvoľba pre ostatných.
Súhrny
Notifikácie s nízkou prioritou v jednom dennom alebo týždennom e-maile v miestnom čase — termíny, obdobia, behy, zmeny frekvencie a náhľad.
Pripomienky a eskalácie
Reminder::before/after/at, while(), rearm(), acknowledgedOnRead(), trait HasNotificationReminders, jednorazové pripomienky, odosielanie a eskalácie.
Notifikácie iných balíkov
Namapujte notifikácie iných balíkov na vlastné druhy, aby platili preferencie, deduplikácia, tiché hodiny a schránka — alebo ich potlačte.
JSON API
Voliteľné JSON API — všetkých 11 routes pre schránku, preferencie a druhy prihláseného používateľa s filtrami, telami, chybami a resources.
Udalosti
Každá udalosť, ktorú balík spúšťa po commite — schránka, e-mail, súhrn, pripomienka, eskalácia, preferencia, preskočenie a chyby interop.
Výnimky
Každá doménová výnimka so stabilným kódom a HTTP stavom, výnimky konfigurácie a ich mapovanie vo vlastnom API.
Artisan príkazy
notifications:sweep, prune, types, doctor, install a reminders:sync — čo robia, čo kontroluje doctor a ekvivalenty na fasáde.
Testovanie
Notifications::fake() zaznamenáva bez vykonania — každá asercia, zaznamenané operácie, passthrough(), Pest expectations, skutočný postup a factories.
Požiadavky
PHP 8.4+, Laravel 13, MySQL alebo PostgreSQL (SQLite pre testy), queue worker, plánovač a štyri balíky Roundly.
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.