Open source
Reports for Laravel
composer require roundly-consulting/reports-for-laravelPrehľad
Základ pre moderáciu obsahu a nahlasovanie v Laraveli. Umožnite akémukoľvek modelu podávať hlásenia — alebo hosťom nahlasovať anonymne — na akýkoľvek nahlásiteľný model, označte každé hlásenie typovaným dôvodom a posúvajte ho stráženým životným cyklom stavov, voliteľne so súhlasom viacerých moderátorov. Ochrana pred duplicitami, agregačné scopes, eskalácia pri prahu a udalosti životného cyklu sú súčasťou balíka — za fluentnou fasádou s triedami Action a DTO v pozadí. Natívny balík s licenciou MIT, postavený len na Laraveli a našich balíkoch approvals, enums a package-toolkit — bez závislostí tretích strán.
Čo získate
Hlásenia na čokoľvek, od kohokoľvek
GivesReports a HasReports urobia z akéhokoľvek Eloquent modelu nahlasovateľa alebo nahlásiteľný subjekt — nahlasovať môžu aj hostia, rozlíšení hašovaným identifikátorom.
Typované a rozšíriteľné dôvody
Enum Reason s hotovými popiskami a možnosťami pre výber plus vlastné slugy overované voči zoznamu povolených dôvodov v konfigurácii.
Strážený životný cyklus
Čakajúce → v posúdení → vyriešené alebo zamietnuté → uzavreté, vynútené tabuľkou prechodov, ktorá zaznamená, kto hlásenie vybavil, kedy a prečo.
Schvaľovanie viacerými moderátormi
Rozhodnutia idú cez approvals-for-laravel — jednomyseľne, kvórom, ktorýmkoľvek moderátorom alebo vážene — a hlásenie sa vybaví samo po splnení podmienky.
Ochrana pred duplicitami a prehľady
Zablokujte opakované hlásenia od toho istého nahlasovateľa či hosťa, počítajte hlásenia na subjekt a zoraďte obsah podľa počtu hlásení.
Eskalácia pri prahu a udalosti
ReportThresholdReached sa spustí, keď subjekt dosiahne nastavený prah, a ďalšie udalosti sprevádzajú každé vytvorenie, zmenu stavu aj rozhodnutie.
Fasáda, DI alebo akcie
Jedna fasáda Reports, vložiteľný ReportsManager alebo šesť jednoúčelových akcií — a zaznamenávajúci Reports::fake() pre vaše testy.
Dokumentácia
Inštalácia
Inštalácia cez Composer, publikovanie konfigurácie pri zmene tabuľky či typu kľúča a publikovanie a spustenie migrácií reports a approvals.
Konfigurácia
Každý konfiguračný kľúč a jeho predvolená hodnota — model, tabuľka, typ kľúča, dôvody, duplicity, prechody, prah, čistenie a moderácia.
Databázová schéma a typy kľúčov
Tabuľka reports stĺpec po stĺpci, jej indexy a ako key_type určuje typ morph stĺpcov pre bigint, UUID alebo ULID modely.
Príprava modelov
GivesReports pridajte modelom, ktoré podávajú hlásenia, HasReports modelom, ktoré možno nahlásiť; Reporter a Reportable sú voliteľné.
Fasáda Reports
Jedna fasáda na podávanie, posudzovanie, vybavovanie, moderovanie a čistenie hlásení aj na čítanie dôvodov — s buildermi na podanie a moderáciu.
DI, akcie a DTO
Namiesto fasády si vložte ReportsManager alebo spustite jednu zo šiestich tried akcií s readonly DTO z jobov a služieb.
Podávanie hlásení
Hlásenia podávajte cez fluentnú fasádu Reports alebo trait GivesReports — subjekt, nahlasovateľ, typovaný dôvod a popis v jednom reťazci.
Hlásenia hostí a anonymné hlásenia
Prijímajte hlásenia od neprihlásených návštevníkov, deduplikované podľa hašovanej IP adresy alebo e-mailu.
Dôvody
Typované dôvody hlásení cez enum Reason, vlastné slugy v konfigurácii a čítanie dôvodov cez fasádu — slug => popisok, predvolený dôvod a kontroly.
Životný cyklus stavov
Päť stavov a tabuľka prechodov — hlásenia posúvate cez Reports::review(), close() alebo changeStatus(), strážené cez strict_transitions.
Vyriešenie a zamietnutie
Hlásenie vybavíte cez Reports::resolve() alebo reject() — zaznamená sa moderátor, čas a poznámka a spustí sa príslušná udalosť.
Moderácia viacerými moderátormi
Vyžadujte súhlas viacerých moderátorov — jednomyseľne, kvórom, ktorýmkoľvek alebo vážene — skôr, než sa hlásenie vybaví.
Ochrana pred duplicitami
Zabráňte tomu istému nahlasovateľovi či hosťovi nahlásiť subjekt dvakrát — v rámci otvorených hlásení alebo všetkých, aké kedy vznikli.
Agregácia a dotazy
Počítajte hlásenia na subjekt, overte, kto čo nahlásil, a zoraďte či filtrujte subjekty podľa počtu hlásení pripravenými scopes.
Automatické akcie pri prahu
ReportThresholdReached sa spustí, keď počet otvorených hlásení subjektu dosiahne prah — skryte obsah, upozornite moderátorov alebo oboje.
Model Report
Atribúty, relácie, scopes a soft delete modelu Report — a ako ho nahradiť vlastnou podtriedou.
Udalosti
Päť udalostí pokrýva vytvorenie, zmenu stavu, vyriešenie, zamietnutie a dosiahnutie prahu — rovnako pri priamom vybavení aj pri moderácii.
Artisan príkazy
Premažte staré vybavené hlásenia, vypíšte počty otvorených hlásení na subjekt a skontrolujte aktívnu konfiguráciu cez php artisan about.
Výnimky
Typované výnimky balíka — všetky rozširujú ReportsException — a kontext, ktorý každá z nich nesie.
Testovanie
Reports::fake() každé meniace volanie namiesto vykonania zaznamená, s aserciou pre každé sloveso — plus stav factory pre každú fázu cyklu.
Požiadavky
PHP 8.4+ a Laravel 12 alebo 13; approvals, enums a package-toolkit sa nainštalujú automaticky ako závislosti.
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.