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

Open source

Money for Laravel

Inštalácia
composer require roundly-consulting/money-for-laravel
Vyžaduje: PHP ^8.4 · Laravel ^12.0|^13.0

Prehľad

Nemenné peňažné a menové hodnoty s ľubovoľnou presnosťou pre Laravel. Sumy sa uchovávajú presne v najmenších jednotkách meny ako kanonické celočíselné reťazce s aritmetikou bcmath — nikde žiadny float, žiadny strop int64 — a každá stratová operácia zaokrúhľuje presne raz natívnym RoundingMode z PHP 8.4. Okolo tohto jadra dostanete meny ISO 4217 aj vlastné meny, formátovanie a parsovanie podľa lokality, Eloquent casty a makrá schémy, validáciu, zľavy, dane a výmenné kurzy s vymeniteľnými zdrojmi (konfigurácia, databáza, ECB). Licencia MIT a minimum závislostí: ext-bcmath, Laravel a dva základné balíky Roundly — žiadna externá knižnica na peniaze.

Čo získate

Presné najmenšie jednotky

Sumy sú kanonické celočíselné reťazce s aritmetikou bcmath — nikde žiadny float, až 65 číslic, takže sa zmestí aj kryptomena s presnosťou na wei.

Bezpečnosť mien

Pribalený zoznam ISO 4217 (165 mien) plus vlastné meny až s 18 desatinnými miestami. Miešanie mien vyhodí výnimku, prevod je vždy explicitný.

Jedno zaokrúhlenie, férové delenie

Každá stratová operácia zaokrúhľuje presne raz natívnym RoundingMode; allocate() a split() vždy dajú dokopy presne pôvodnú sumu.

Formátovanie a parsovanie

Formátovanie cez ext-intl presné aj nad 15 číslic, deterministický fallback a striktný parser lokalizovaného vstupu.

Eloquent, validácia a HTTP

Casty, makrá schémy $table->money(), pravidlá MoneyAmount a CurrencyCode, Request::money(), makrá kolekcií a @money.

Zľavy a dane

Kombinovateľné zľavy so stropmi, prioritami a exkluzivitou; daňové rozpisy, v ktorých základ + daň vždy presne dá sumu s daňou.

Výmenné kurzy

Drivery config, database, ECB a chain s presnými krížovými kurzami a ochranou pred zastaranými kurzami — cez fasádu Exchange, injektovaný manažér alebo akcie, so zaznamenávajúcim Exchange::fake().

Dokumentácia

Inštalácia

Inštalácia cez Composer; konfiguráciu, migráciu kurzov a validačné hlášky publikujete, len keď ich potrebujete.

Konfigurácia

Každý konfiguračný kľúč a jeho predvolená hodnota — meny, presnosť schémy, zaokrúhľovanie, formátovanie, makrá, kurzy, cache a plán aktualizácie.

Fasády Exchange a Currencies

Exchange prevádza, zisťuje kurzy, spravuje tabuľku uložených kurzov a vie sa nahradiť fake; Currencies číta a rozširuje register mien.

DI a akcie

Namiesto fasád injektujte ExchangeManager alebo kontrakt CurrencyRegistry, prípadne volajte tri akcie pre kurzy priamo s ich DTO.

Objekt Money

Vytvárajte nemenné hodnoty Money z najmenších jednotiek, celých súm či iných škál, čítajte ich presne a bezpečne serializujte do JSON.

Aritmetika a porovnávanie

Aritmetika v rámci jednej meny, ktorá zaokrúhľuje presne raz, hotovostné zaokrúhlenie, presné porovnania a súčet, minimum, maximum a priemer.

Rozdeľovanie súm

Rozdeľte sumy podľa pomerov alebo na rovnaké časti bez straty centu a presne rozpočítajte zľavu objednávky na jednotlivé položky.

Viacmenové súčty

Držte zostatky vo viacerých menách v MoneyBag a spočítajte ich do jednej meny s jediným presným zaokrúhlením.

Sumy a presnosť

Kanonická celočíselná gramatika, pevné limity, most na int64 a správanie peňažných stĺpcov v PostgreSQL, MySQL a SQLite.

Zaokrúhľovanie a pomocné triedy

Osem natívnych režimov zaokrúhľovania, presné hodnoty Ratio a Percentage, pomocník MinorUnits a RoundingModes pre vašu konfiguráciu.

Meny

Pribalený register ISO 4217, vyhľadávanie podľa kódu či číselného kódu, vlastné meny až s 18 desatinnými miestami a povolené meny pre vstup.

Formátovanie a parsovanie

Výstup podľa lokality s FormatOptions, deterministický záložný formátovač, striktný parser lokalizovaného vstupu a direktíva @money.

Eloquent casty a schéma

Castujte atribúty na Money v jednom či dvoch stĺpcoch, vytvárajte presné decimal stĺpce makrami schémy a správne sa nad nimi dopytujte.

Validácia, requesty a kolekcie

Validujte sumy a kódy mien, čítajte peniaze z requestu bez floatov, agregujte kolekcie a vracajte JSON resource.

Zľavy

Percentuálne, pevné zľavy a doprava zdarma so stropmi, prioritami a exkluzivitou, tri stratégie kombinovania a podrobný rozpis.

Dane

Základ, daň a suma s daňou z presných sadzieb s jedným zaokrúhlením na volanie, rozpisy so zaručeným súčtom a súhrny pre faktúry.

Výmenné kurzy

Explicitný prevod cez drivery config, database, ECB či chain, presné krížové kurzy, manuálne kurzy, vlastné drivery a nastavenie pre produkciu.

Príkazy, eventy a plánovanie

Artisan príkazy pre meny a kurzy, plánovaná aktualizácia z ECB, aktualizácia cez frontu, aktualizácia a čistenie z kódu a eventy aktualizácie.

Výnimky

Jedna základná trieda MoneyException a typovaná výnimka pre každé zlyhanie — nezhoda mien, zaokrúhlenie, pretečenie, kurzy a konfigurácia.

Testovanie

Exchange::fake() nasadí statické kurzy a zaznamená aktualizácie, zápisy aj čistenie — overte každé volanie a naplňte tabuľku kurzov.

Migrácia z vlastnej triedy Money

Preveďte volania z vlastnej triedy Money na tento balík — obe môžu fungovať vedľa seba, kým postupne presúvate kód.

Požiadavky

PHP 8.4+ s ext-bcmath a Laravel 12 alebo 13; ext-intl a ext-simplexml sú voliteľné.

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.