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

Open source

Reports for Laravel

Inštalácia
composer require roundly-consulting/reports-for-laravel
Vyžaduje: PHP ^8.4 · Laravel ^12.0|^13.0

Prehľ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 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.