Konfigurácia
Balík funguje aj bez publikovanej konfigurácie — predvolené hodnoty sa doplnia automaticky. Publikovaný config/reports.php:
return [
'model' => RoundlyConsulting\Reports\Models\Report::class,
'table' => 'reports',
'key_type' => env('REPORTS_KEY_TYPE', 'bigint'),
'default_reason' => 'other',
'reasons' => ['spam', 'abuse', 'harassment', 'inappropriate', 'misinformation', 'other'],
'allow_unknown_reasons' => false,
'prevent_duplicates' => true,
'duplicate_scope' => 'open',
'strict_transitions' => true,
'threshold' => null,
'prune_after_days' => null,
'moderation' => [
'default_rule' => 'unanimous',
'default_quorum' => null,
],
];Všetky kľúče
| Kľúč | Predvolené | Účel |
|---|---|---|
model | Report::class | Eloquent model, ktorý ukladá hlásenia. Nasmerujte ho na vlastnú podtriedu Report; čokoľvek iné vyhodí InvalidConfigurationException. |
table | reports | Tabuľka hlásení — číta ju model aj migrácia. Reťazec; prázdna hodnota sa považuje za nenastavenú, takže platí reports. |
key_type | bigint | Typ kľúča morph stĺpcov reporter, reported a resolved_by: bigint, uuid alebo ulid. Env REPORTS_KEY_TYPE; nenastavená alebo prázdna hodnota znamená bigint, akákoľvek iná hodnota vyhodí InvalidConfigurationException. |
default_reason | other | Dôvod použitý, keď hlásenie žiadny nemá (reťazec; prázdna hodnota sa považuje za nenastavenú, takže platí other). |
reasons | šesť slugov Reason | Povolené slugy dôvodov — neprázdny zoznam neprázdnych reťazcov; prázdna hodnota sa považuje za nenastavenú, takže platia slugy Reason. Sem pridajte vlastné. |
allow_unknown_reasons | false | Pri true sa prijme akýkoľvek slug bez validácie. |
prevent_duplicates | true | Zabráni tomu istému nahlasovateľovi či hosťovi nahlásiť rovnaký subjekt dvakrát. Hlásenia na jeden subjekt sa spracúvajú postupne, takže dvojité odoslanie neprekĺzne. |
duplicate_scope | open | open porovnáva len s otvorenými hláseniami; any so všetkými, aké kedy vznikli. Iná hodnota vyhodí výnimku. |
strict_transitions | true | Povolí len deklarované prechody stavov; nepovolený prechod vyhodí výnimku. |
threshold | null | ReportThresholdReached sa spustí, keď nové hlásenie zvýši počet otvorených hlásení subjektu presne na toto číslo — raz pri každom prekročení. null, prázdna hodnota (nenastavené) alebo 0 ho vypne; čokoľvek iné, čo nie je celým číslom, vyhodí pri podaní hlásenia InvalidConfigurationException. |
prune_after_days | null | Predvolený vek v dňoch pre Reports::prune() / reports:prune, ak okno nezadáte. Pri null alebo prázdnej hodnote (nenastavené) ho zadať musíte — inak MissingPruneWindowException, nikdy nie nulové okno; čokoľvek iné, čo nie je celým číslom, vyhodí InvalidConfigurationException. |
moderation.default_rule | unanimous | Predvolené ApprovalRule pre Reports::moderate(), ak nezavoláte ->rule(): unanimous, quorum, any alebo weighted. Neznáma hodnota vyhodí pri volaní Reports::moderate() InvalidConfigurationException. |
moderation.default_quorum | null | Počet súhlasov (aspoň 1) pre pravidlo quorum, ak nezavoláte ->quorum(). null alebo prázdna hodnota (nenastavené) vyžaduje všetkých určených moderátorov; akákoľvek iná hodnota, ktorá nie je celým číslom, vyhodí InvalidConfigurationException. |
Blok moderation nastavuje predvolené hodnoty buildera Reports::moderate(). Neznáma hodnota default_rule alebo default_quorum, ktoré nie je celým číslom aspoň 1, vyhodí InvalidConfigurationException, namiesto návratu k najprísnejšiemu nastaveniu.
Prostredie (env)
Cez env sa nastavuje len typ kľúča:
REPORTS_KEY_TYPE=uuidHodnoty z .env prichádzajú ako reťazce a balík ich tak aj číta: celočíselné kľúče prijmú celé číslo ako reťazec ('5') a prepínače prijmú 'true'/'false', '1'/'0', 'on'/'off' a 'yes'/'no' — čokoľvek iné vyhodí výnimku. Nenastavený kľúč — chýbajúci, null alebo prázdny ako KEY= v .env — dostane predvolenú hodnotu; pri voliteľných threshold, prune_after_days a moderation.default_quorum to znamená, že nie sú nastavené (bez prahu, s povinným explicitným oknom, všetci moderátori), nikdy nie 0. Nastavená, no nepoužiteľná hodnota vyhodí RoundlyConsulting\PackageToolkit\Exceptions\InvalidConfigurationException z balíka toolkit, namiesto toho, aby balík potichu zvolil jednu z možností, a php artisan about ju zobrazí ako INVALID.
- threshold, prune_after_days alebo moderation.default_quorum, ktoré nie je celým číslom („two“, „1.5“).
- duplicate_scope iný ako open či any, alebo neznáme moderation.default_rule.
- table či default_reason, ktoré nie je reťazcom.
- Zoznam reasons, ktorý je prázdny alebo obsahuje slug, ktorý nie je reťazcom.
- model, ktorý nie je Report ani jeho podtriedou.
table a key_type nastavte pred migráciou — migrácia ich číta pri spustení. Aktívne nastavenia zobrazí sekcia Reports v php artisan about (pozrite Artisan príkazy).
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.