Open source
Credits for Laravel
composer require roundly-consulting/credits-for-laravelPrehľad
Kredity a zostatky peňaženky pre akýkoľvek Eloquent model, vedené ako kniha pohybov, ktorá sa len dopĺňa. Každá zmena je samostatný nemenný záznam s časom — kladný pripisuje, záporný odpisuje — a zostatok je súčet týchto záznamov, takže priebežný stav, celú históriu aj zostatok k ľubovoľnému dátumu máte bez práce navyše. Pomenované skupiny, ochrana pred prečerpaním odolná voči súbehu, presné desatinné zobrazenie a skupiny vedené v mene sú súčasťou balíka. Licencia MIT a minimum závislostí: Laravel a dva malé balíky od Roundly.
Čo získate
Kniha pohybov len na zápis
Každé pripísanie aj odpis je samostatný záznam s časom, popisom a metadátami. Zostatok je ich súčet — nikdy nie uložený stĺpec.
Zostatok k ľubovoľnému dátumu
Zistite zostatok presne tak, ako bol v minulosti — datovaná kniha pohybov ho zrekonštruuje pre jednu skupinu aj celkovo.
Pomenované skupiny
Držte promo a zakúpené kredity oddelene na tom istom vlastníkovi — izolované zostatky a súčty naprieč skupinami, keď potrebujete jedno číslo.
Ochrana pred prečerpaním
Odpis pod stanovenú hranicu predvolene vyhodí výnimku a zámok vlastníka zoradí súbežné zmeny za sebou na každej úrovni izolácie — nič sa neminie dvakrát.
Presné desatinné zobrazenie
Celé najmenšie jednotky s nastaviteľnou škálou a natívnym RoundingMode — žiadne odchýlky float, ani pri PHP_INT_MAX.
Skupiny v mene
Priraďte skupine ISO alebo vlastnú menu a čítajte či zapisujte ju ako Money; nesprávnu menu odmietne skôr, než sa čokoľvek zapíše.
Fasáda, DI alebo akcie
Credits::for($user) nad injektovateľným CreditsManager a jednoúčelovými akciami, zaznamenávajúci fake, udalosť CreditsModified a credits:modify.
Dokumentácia
Inštalácia
Inštalácia cez Composer, publikovanie a spustenie migrácie a voliteľne publikovanie konfigurácie a prekladov.
Konfigurácia
Každý konfiguračný kľúč a jeho predvolená hodnota — model, typy kľúčov, prečerpanie, predvolená skupina, škála, zaokrúhľovanie a meny.
Typy kľúčov a schéma
Tabuľky credits a credit_locks a ako key_type a primary_key_type určujú typ morph stĺpca aj vlastného id knihy pohybov.
Modely s kreditmi
Implementujte Creditable a použite HasCredits na ľubovoľnom Eloquent modeli — používateľ, tím, účet — a získa knihu pohybov aj zostatok.
Fasáda Credits
Credits::for($owner) — nemenný scope na pripísanie, odpis, nastavenie a čítanie kreditov po skupinách, v celých číslach alebo Money, plus pomocníky.
DI a akcie
Namiesto fasády injektujte CreditsManager alebo volajte jednoúčelové akcie z jobov a služieb — zmena, nastavenie, zostatok, súčet, formátovanie.
Pripísanie a odpis kreditov
Pripisujte a odpisujte kredity cez modifyCredits(), pridajte popis a metadáta a nastavte presný zostatok cez setCreditsTo().
Ochrana pred prečerpaním
Odpis pod hranicu predvolene vyhodí InsufficientCreditsException; prečerpanie povolíte pre jedno volanie alebo globálne, bezpečne aj pri súbehu.
Čítanie zostatkov
Zistite aktuálny aj historický zostatok, overte dostupné kredity cez hasCredits() a pracujte priamo so vzťahom knihy pohybov.
Pomenované skupiny
Rozdeľte kredity jedného vlastníka do izolovaných pomenovaných skupín a sčítajte vybrané či všetky skupiny, keď potrebujete jedno číslo.
Desatinné kredity a zobrazenie
Ukladajte desatinné kredity ako celé najmenšie jednotky so škálou a zobrazujte ich ako presné desatinné reťazce bez lokalizácie.
Skupiny v mene
Priraďte skupine ISO alebo vlastnú menu z money, čítajte jej zostatok ako Money a odmietajte zápisy v akejkoľvek inej mene.
Vlastné meny a výmena
Veďte skupiny vo vlastných jednotkách, napríklad vernostných bodoch, rešpektujte 64-bitový limit a vymieňajte body za peniaze.
Dotazovacie scopy
Reportujte nad knihou pohybov cez scopy modelu Credit — pripísania, odpisy, okamih, vlastník a filtre skupín.
Udalosti
Reagujte na každú zaznamenanú zmenu cez udalosť CreditsModified — vlastník, nový záznam a nový zostatok skupiny.
Vlastný model a preklady
Nahraďte model vlastnou podtriedou Credit cez credits.model a publikujte texty výnimiek, aby ste ich preložili alebo upravili.
Artisan príkazy
Aplikujte zmenu kreditov hromadne cez credits:modify a skontrolujte vyhodnotenú konfiguráciu cez php artisan about.
Výnimky
Výnimky balíka a výnimky z money-for-laravel, ktoré balík prepúšťa — kedy vznikajú a čo nesú.
Testovanie
Credits::fake() zaznamená každé pripísanie, odpis a nastavenie bez zápisu; alebo testujte zostatky, ochranu a udalosti proti skutočnej databáze.
Požiadavky
PHP 8.4+ s ext-bcmath, Laravel 12 alebo 13 a dva balíky od Roundly, ktoré Composer nainštaluje za vás.
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.