Open source
Requests for Laravel
composer require roundly-consulting/requests-for-laravelPrehľad
Natívne žiadosti so schvaľovaním pre Laravel. Akýkoľvek model — používateľ, zákazník, tím — podá žiadosť a tá sa uzavrie, keď ju deklarovaní schvaľovatelia odsúhlasia podľa zvoleného pravidla: jednomyseľne, kvórom, rozhodnutím prvého schvaľovateľa alebo váženým hlasovaním. Viacstupňové schvaľovanie, pomenované predvoľby workflowov, delegovanie, dôvod pri každom rozhodnutí s auditom, automatická expirácia a podrobné udalosti sú súčasťou balíka. Licencia MIT a minimum závislostí — stojí len na Laraveli a našom vlastnom engine approvals-for-laravel.
Čo získate
Žiadosti od akéhokoľvek modelu
Polymorfný autor, typ, názov, popis a voľné meta údaje — žiadosť môže podať používateľ, zákazník, tím či čokoľvek iné.
Štyri pravidlá schvaľovania
Predvolene jednomyseľne, alebo kvórum, rozhoduje prvý schvaľovateľ, prípadne vážené hlasovanie, v ktorom senior schvaľovateľ prekročí hranicu sám.
Stupne a predvoľby
Postupné viacstupňové schvaľovanie (manažér, potom financie, potom riaditeľ) a pomenované predvoľby workflowov definované raz v konfigurácii.
Delegovanie a audit
Odovzdajte právomoc zástupcovi na určité obdobie; každé rozhodnutie sa uloží s aktérom, dôvodom a časom.
Strážený životný cyklus
Päť stavov — New, Approved, Rejected, Cancelled, Expired — s voliteľnou ochranou, ktorá odmietne nepovolené prechody.
Automatická expirácia
Termín pre každú žiadosť alebo globálne TTL a plánovateľný príkaz requests:expire so skúšobným režimom.
Fasáda, DI či akcie — a fake
Fasáda Requests, injektovaný RequestManager alebo samostatné akcie, sedem podrobných udalostí a zaznamenávajúci Requests::fake().
Dokumentácia
Inštalácia
Inštalácia cez Composer, potom publikovanie a spustenie migrácií balíka aj schvaľovacieho enginu.
Konfigurácia
Každý kľúč config/requests.php a jeho predvolená hodnota — model, typ kľúča autora, ochrana prechodov, TTL a alias fasády.
Základné pojmy
Model Request, enum Status a spôsob, akým schvaľovací engine určuje výsledok žiadosti.
Nastavenie modelov
Umožnite modelom schvaľovať cez trait GivesApprovals a podávať žiadosti cez trait HasRequests.
Fasáda Requests
Všetky metódy fasády Requests na jednom mieste — create, approve, reject, reopen, cancel, expire, expireDue a canTransition.
DI, akcie a DTO
Bez fasády: injektujte RequestManager alebo spúšťajte CreateRequest, ResolveRequest a ďalšie akcie s typovaným CreateRequestDto.
Vytváranie žiadostí
Zostavte a uložte žiadosť plynulo cez Requests::make() — autor, typ, meta údaje, schvaľovatelia a termín v jednej reťazi.
Rozhodovanie o žiadostiach
Schvaľujte, zamietajte a znovu otvárajte žiadosti s dôvodom pri každom rozhodnutí; všetko sa zapíše do auditu enginu.
Pravidlá schvaľovania
Pre každú žiadosť zvoľte jednomyseľnosť, kvórum, prvého schvaľovateľa alebo vážené hlasovanie a dajte seniorom väčšiu váhu.
Viacstupňové schvaľovanie
Vedie žiadosť postupnými stupňami — každý sa otvorí až po uzavretí predchádzajúceho.
Predvoľby workflowov
Pravidlo, kvórum a stupne nadefinujte raz v config/approvals.php a žiadosti otvárajte podľa názvu predvoľby.
Delegovanie schvaľovania
Schvaľovateľ na dovolenke môže na určité obdobie odovzdať svoju právomoc zástupcovi.
Stavy a strážené prechody
Päť stavov, ich pomocné metódy, graf životného cyklu a voliteľná ochrana, ktorá odmietne nepovolené prechody.
Zrušenie a expirácia
Rušte a expirujte žiadosti na požiadanie, nastavte termíny pre jednotlivé žiadosti či globálne a expirujte ich podľa plánu.
Query scopy
Filtrujte žiadosti podľa stavu, autora a termínu pomocou pripravených Eloquent scopov.
Priebeh schvaľovania
Zistite, kto ako rozhodol, stav schvaľovania v engine, otvorený stupeň a priebeh typu 2 z 3.
Udalosti
Sedem udalostí pre vytvorenie, zmenu stavu, zaznamenané a stiahnuté schválenia, zamietnutie, zrušenie a expiráciu.
Výnimky a preklady
Jedna hierarchia RequestException s typovanými podtriedami a preložiteľnými správami.
Artisan príkazy
requests:expire expiruje žiadosti po termíne so skúšobným režimom a dávkovaním; about ukáže nastavenie balíka.
Testovanie
Requests::fake() zaznamená každé volanie bez zápisov do databázy, alebo testujte skutočný engine so stavmi factory.
Požiadavky
PHP 8.4+ a Laravel 12 alebo 13; schvaľovací engine, pomocníci pre enumy a package toolkit sa nainštalujú 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.