Open source
Workflows for Laravel
composer require roundly-consulting/workflows-for-laravelPrehľad
Trvalé, verzované workflowy pre Laravel. Workflow je JSON graf spúšťačov, podmienok, schvaľovaní, čakaní, oneskorení a eskalácií, ktorý vaši používatelia upravujú v editore — alebo ho napíšete v PHP — a engine vykoná každú publikovanú verziu presne tak, ako bola publikovaná, krok za krokom vo vašom fronte. Čakania sa ukladajú ako riadky a prežijú reštart aj nasadenie, pracovný čas sa riadi kalendárom pracovných dní alebo otváracích hodín, opakovania používajú pre každú návštevu kroku jeden idempotentný kľúč a skúšobné behy ukážu každú cestu bez akéhokoľvek zápisu. Licencia MIT, postavené na fronte, plánovači a databáze Laravelu a na balíkoch Roundly crypto, enums a package-toolkit; schvaľovanie, lifecycle, notifikácie, otváracie hodiny, formuláre a tímy sa pripájajú ako voliteľné prepojenia.
Čo získate
Workflowy uložené ako verzovaný JSON
Workflow je JSON graf uzlov a hrán so zverejnenou JSON Schema. Úpravy idú do konceptu, publikovanie ho zmrazí a každý beh sa dokončí na verzii, na ktorej začal.
Štyri spôsoby spustenia
Ručné spustenie s overeným vstupom alebo formulárom, udalosti aplikácie a namapované Laravel udalosti, cron plány (aj raz pre každý zodpovedajúci subjekt) a voliteľná podpísaná webhook route.
Trvalé čakanie a pracovný čas
Oneskorenia, čakanie na udalosť či podmienku a časové limity sa ukladajú ako riadky a prebúdza ich plánovač. Pracovné dni a hodiny sa riadia kalendárom pracovných dní alebo otváracích hodín, vrátane prechodu na letný čas.
Eskalácie a opakovania
Čakajúci krok môže úroveň po úrovni preradiť schvaľovateľov, poslať notifikáciu alebo spustiť iný workflow. Zlyhané kroky sa opakujú s odstupom a stabilným idempotentným kľúčom a once() zaručí, že sa databázový efekt vykoná práve raz.
Deklaratívne podmienky, žiadny kód v grafe
Podmienky sú JSON klauzuly nad registrovanými poľami — žiadny výrazový jazyk, žiadne regulárne výrazy, nič, čo by autor workflowu mohol spustiť ako kód.
Skúšobné behy, história a prehľad behov
Prejdite workflow bez akéhokoľvek zápisu — jednu cestu alebo všetky vetvy — čítajte záznam krokov každého behu s vyhodnoteným vstupom a počty čakajúcich behov pri každom uzle.
Fasáda, DI alebo akcie — a graf v PHP
Jedna fasáda Workflows, injektovateľný manažér alebo jednoúčelové akcie, plynulý zostavovač grafu, fake, ktorý len zaznamenáva, falošné kroky a Pest expectations.
Dokumentácia
Použitie
Kde sa balík hodí — schvaľovanie s termínmi, kontroly v pracovných dňoch, SLA pripomienky, onboarding a procesy, ktoré si zákazníci nastavia sami.
Inštalácia
Inštalácia cez Composer, publikovanie konfigurácie a ôsmich migrácií, typy kľúčov, plánovanie workflows:wake, registrácia subjektu a prvé spustenie.
Konfigurácia
Všetky kľúče config/workflows.php s env premennou, predvolenou hodnotou a rozsahom — kľúče, front, limity, opakovania, autorizácia, webhooky, čistenie.
Základné pojmy
Definície, verzie, inštancie, uzly, kroky, návštevy, čakania, eskalácie, signály, strany, aktéri a vlastníci — a životný cyklus jednej inštancie.
Subjekty, vlastníci a strany
Registrácia typov subjektov s typovanými poľami, určenie vlastníka, trait HasWorkflows a schvaľovatelia či príjemcovia ako odkazy na strany.
Fasáda Workflows
Prehľad fasády Workflows — start, emit, for($subject), handle definície, verzie, inštancie, registre, zostavovač grafu, wake a prune.
DI a akcie
Bez fasády: injektujte WorkflowsManager alebo zavolajte jednoúčelovú akciu — všetky akcie pre aplikáciu so signatúrou execute() a cestou cez fasádu.
Schéma grafu
Dokument roundly.workflows.graph/v1 — pravidlá, odkazy na hodnoty, trvania, strany — a úplné JSON Schemas grafu, šablóny a spoločných definícií.
Graf v PHP
Workflows::graph() zapíše rovnaký JSON graf v PHP — všetky kroky, modifikátory, hrany a pomocníci hodnôt (When, Ref, Party, After, Trigger, Stage).
Vstavané kroky
Všetky vstavané typy krokov — trigger, condition, branch, set_field, transition, delay, wait, loop, start_workflow, end, approval, notify, webhook.
Podmienky
Deklaratívne JSON podmienky — all, any, not a klauzuly polí, operátory podľa typu poľa, správanie null, čísel a dátumov a kontroly pri publikovaní.
Spúšťače
Spúšťajte workflowy ručne s overeným vstupom či formulárom, z udalostí aplikácie a Laravelu, podľa cron plánu alebo z podpísaného webhooku.
Definície a verzie
Vytváranie, úpravy, publikovanie, vyradenie a obnova definícií, workflowy ako súbory cez workflows:sync, porovnanie verzií a šablóny medzi vlastníkmi.
Kontrakt vlastných krokov
Napíšte vlastný typ kroku: registrácia, trieda StepType, ConfigSchema, StepContext, StepResult a WaitSpec, idempotencia, zlyhania a hook cancel.
Pracovný čas a eskalácie
Kalendáre pracovných dní a otváracích hodín, počítanie pracovného času cez zmenu času a eskalácie, ktoré preradia, upozornia alebo spustia workflow.
Beh krokov (engine)
Ako kroky bežia: joby a lease, dve transakcie na krok, čakania a workflows:wake, opakovania, idempotencia, limity, autorizácia a kontext vlastníka.
Validácia pri publikovaní
Validácia konceptov a grafov pred publikovaním — ValidationReport, jedenásť prechodov a všetky strojovo čitateľné validačné kódy s ich významom.
Skúšobné behy a história
Prejdite workflow bez zápisu — jednu cestu alebo všetky vetvy — a čítajte históriu inštancií, záznam krokov s vyhodnoteným vstupom a prehľad behov.
Vizuálny editor
Čo volá vizuálny editor — schémy, katalóg krokov, výber polí, priebežná validácia, porovnanie, skúšobné behy a prehľad behov — a JSON resources.
Prepojenia s ďalšími balíkmi
Voliteľné prepojenia — kroky approval, prechody a udalosti lifecycle, notify, kalendáre otváracích hodín, formuláre, tímy a podpísané webhooky.
Recepty
Päť kompletných workflowov — schválenie nákupu, slučka prepracovania, onboarding, SLA pripomienka, nočný plán — a test, ktorý ich preverí.
Databáza
Osem tabuliek — každý stĺpec, index a cudzí kľúč, ako typy kľúčov určujú morph stĺpce a čo workflows:prune po uplynutí doby uchovania zmaže.
Udalosti
Všetky udalosti, ktoré balík vyšle po commite — inštancie, kroky, eskalácie, publikovanie, koncept a vyradenie — s ich obsahom.
Výnimky
Všetky výnimky s errorCode() a HTTP stavom — neznáme definície, konflikty, neplatné grafy a vstupy, autorizácia a chyby registrácie.
Artisan príkazy
workflows:install, wake, prune, catalogue, validate, sync, export, list, show, retry, cancel, doctor a make:workflow-step — čo každý robí.
Riešenie problémov
Každé zistenie workflows:doctor s riešením a každý kód zlyhania — kedy sa zapíše a či môže pomôcť ručné opakovanie.
Testovanie
Workflows::fake() zaznamenáva bez spúšťania — všetky dvojice asercií, zaznamenané operácie, passthrough, falošné kroky, InteractsWithWorkflows a Pest.
Požiadavky
PHP 8.4+ a Laravel 13, MySQL 8 alebo PostgreSQL, queue worker s pcntl, plánovač so workflows:wake a tri balíky Roundly.
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.