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

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
modelReport::classEloquent model, ktorý ukladá hlásenia. Nasmerujte ho na vlastnú podtriedu Report; čokoľvek iné vyhodí InvalidConfigurationException.
tablereportsTabuľka hlásení — číta ju model aj migrácia. Reťazec; prázdna hodnota sa považuje za nenastavenú, takže platí reports.
key_typebigintTyp 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_reasonotherDô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 ReasonPovolené 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_reasonsfalsePri true sa prijme akýkoľvek slug bez validácie.
prevent_duplicatestrueZabrá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_scopeopenopen porovnáva len s otvorenými hláseniami; any so všetkými, aké kedy vznikli. Iná hodnota vyhodí výnimku.
strict_transitionstruePovolí len deklarované prechody stavov; nepovolený prechod vyhodí výnimku.
thresholdnullReportThresholdReached 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_daysnullPredvolený 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_ruleunanimousPredvolené ApprovalRule pre Reports::moderate(), ak nezavoláte ->rule(): unanimous, quorum, any alebo weighted. Neznáma hodnota vyhodí pri volaní Reports::moderate() InvalidConfigurationException.
moderation.default_quorumnullPoč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=uuid

Hodnoty 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 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.