Open source
Approvals for Laravel
composer require roundly-consulting/approvals-for-laravelPrehľad
Schvaľovania, zamietnutia a súhlas viacerých schvaľovateľov medzi ľubovoľnými dvoma Eloquent modelmi. Aktérom, ktorý rozhoduje, môže byť akýkoľvek model a schvaľovaným tiež; každé rozhodnutie nesie explicitný stav, voliteľný dôvod a voliteľnú expiráciu. Nad jednotlivými rozhodnutiami dostanete žiadosti, o ktorých rozhodujú len menovaní schvaľovatelia, s pravidlami jednomyseľne, kvórum, ktokoľvek alebo vážene, sekvenčné viacstupňové schvaľovanie, časovo ohraničené delegovanie a pomenované šablóny workflow — a každý prechod spustí udalosť. Všetko ovládate cez jednu fasádu Approvals, injektovaný manažér alebo samostatné akcie. Natívny Laravel, licencia MIT, bez runtime závislostí tretích strán okrem dvoch malých pomocných balíkov Roundly.
Čo získate
Skutočné stavy rozhodnutí
Čaká, schválené, zamietnuté, zrušené a expirované — s dôvodom, časovými údajmi a stráženým stavovým automatom.
Pravidlá pre viacerých schvaľovateľov
Jednomyseľné, kvórum, ktokoľvek alebo vážené žiadosti, o ktorých rozhodujú len menovaní schvaľovatelia — a ktoré sa vyhodnotia samy.
Fasáda, DI alebo akcie
Jedno API tromi spôsobmi — fasáda Approvals, injektovaný ApprovalsManager alebo samostatné akcie — plus zaznamenávajúci Approvals::fake().
Viacstupňové schvaľovanie
Najprv vývoj, potom produkt, potom financie — každý stupeň sa otvorí, až keď predchádzajúci prejde.
Delegovanie
Odovzdajte svoju právomoc zástupcovi na určité obdobie; jeho rozhodnutia sa počítajú ako vaše a záznam ukáže, kto konal.
Šablóny workflow
Schvaľovanie výplaty či releasu definujete raz v konfigurácii a otvárate ho menom kdekoľvek v aplikácii.
Udalosti a kontrola cez Gate
Dvanásť udalostí vrátane jednej zastrešujúcej plus voliteľná Gate ability na každom type rozhodnutia.
Dokumentácia
Inštalácia
Nainštalujte cez Composer, publikujte a spustite šesť migrácií určených na publikovanie a voliteľne publikujte konfiguráciu.
Konfigurácia
Všetky konfiguračné kľúče a ich predvolené hodnoty — vymeniteľné modely, typ morph kľúča, autorizácia, expirácia a šablóny workflow.
Traity modelov
GivesApprovals pre aktéra, HasApprovals pre schvaľovaný model a RequiresApproval pre subjekty s viacerými schvaľovateľmi.
Fasáda Approvals
Celá fasáda Approvals — rozhodnutia, žiadosti pre viacerých schvaľovateľov, čítanie, delegovanie a expirácia — so všetkými metódami.
DI a akcie
Bez fasády: injektujte ApprovalsManager alebo volajte triedy akcií priamo — s úplnou mapou metód fasády na akcie.
Fluentné buildery
PendingApproval a PendingApprovalRequest v praxi — pripnutie k žiadosti, pomocník approvals(), absolútna expirácia a neúplné buildery.
Akcie a DTO
Všetky triedy akcií so signatúrou execute() a DTO DecisionData a ApprovalRequestData, ktoré akcie prijímajú.
Rozhodnutia a stavy
Vyžiadať, schváliť, zamietnuť, stiahnuť či prepnúť — päť stavov, jedno živé rozhodnutie na slot a čo ktoré volanie zapíše.
Žiadosti pre viacerých schvaľovateľov
Otvorte žiadosť, o ktorej rozhodujú len menovaní schvaľovatelia podľa pravidla jednomyseľne, kvórum, ktokoľvek či vážene.
Vážené prahy
Vyhodnocujte podľa súčtu váh schválení namiesto počtu hláv — pre aktéra cez ProvidesApprovalWeight alebo pre jedno rozhodnutie.
Viacstupňové schvaľovanie
Schvaľujte v poradí stupňov — každý sa otvorí, až keď predchádzajúci prejde, s udalosťami stupňov a snímkou priebehu.
Delegovanie
Odovzdajte schvaľovaciu právomoc inému modelu na určité obdobie — rozhodnutia zástupcu sa počítajú ako vaše a zaznamenajú, kto konal.
Šablóny workflow
Pravidlo, kvórum, stupne a expiráciu definujete raz v konfigurácii a žiadosti z nich otvárate menom — jednostupňové aj viacstupňové.
Autorizácia
Každú cestu rozhodnutia preveďte cez Gate ability, ktorú definuje vaša aplikácia — odmietnutý aktér dostane výnimku.
Expirácia
Dajte vyžiadaniam, schváleniam aj žiadostiam termín — po jeho uplynutí sa nepočítajú a expire() či approvals:expire vypršanie zapíše.
Blade direktívy
Podmienky @approved, @rejected a @pendingApproval pre vaše šablóny — fungujú s akýmkoľvek modelom, s traitom aj bez neho.
Udalosti
Dvanásť udalostí pokrýva každý prechod — plus zastrešujúca ApprovalStatusChanged, cez ktorú všetky sledujete jedným listenerom.
Enumy
ApprovalStatus a ApprovalRule — doménové metódy, popisky, možnosti pre selecty a validačné pravidlá zosúladené s prípadmi.
Modely a schéma
Štyri Eloquent modely, ich tabuľky, relácie a scopes, typ morph kľúča a výmena za vlastné podtriedy.
Výnimky
Jedna základná trieda ApprovalsException a osem konkrétnych výnimiek — čo ktorú spôsobí a ako ich zachytiť.
Testovanie
Approvals::fake() zaznamená každú operáciu na overenie, k tomu Pest expectations, testovací trait schvaľovateľa a factories pre každý model.
Požiadavky
PHP 8.4+, Laravel 12 alebo 13 a dva malé balíky Roundly, ktoré Composer nainštaluje automaticky.
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.