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

Migrácia z vlastnej triedy Money

Balík má vlastný namespace RoundlyConsulting\Money a nepoužíva žiadny z bežných pôvodných názvov tried, takže stará aj nová trieda môžu fungovať vedľa seba, kým postupne presúvate volania:

Pôvodné volanieMoney for LaravelPoznámka
Money::of($minor, 'EUR')Money::ofMinor($minor, 'EUR')Money::of() zámerne neexistuje.
getMinorAmount() / getAmount() vracajúce intminor()Kanonický reťazec — minorInt() použite len tam, kde int naozaj potrebujete.
getAmount() vracajúce najmenšie jednotky ako reťazecminor()Nie toDecimal().
(int) $row->priceMoney::ofMinor($row->price, $code)Surové sumy nikdy nepretypujte — nad int64 PHP stráca presnosť.
$a->getAmount() > $b->getAmount()$a->isGreaterThan($b)PHP porovnáva číselné reťazce nad int64 cez floaty.
getCurrency()->getCode()currency()->code—
plus() / minus() / times()add() / subtract() / multiply()—
subtract() orezaný na nuluDiscount::applyTo()Alebo Money::max([$x->subtract($y), Money::zero($c)]).
multiply(float) / divide(float)multiply('1.19') / divide(Ratio::of(…))Alebo percentage('20') — bez floatov.
fromMajor(float)Money::ofMajor('10.50', $code)Reťazec alebo int; float je TypeError.
format($locale) deliace stovkouformat($locale)Podľa exponentu: JPY 0, BHD 3, vlastné až 18.
allocate(list<int>)allocate(...$ratios)Variadické inty, celočíselné reťazce alebo desatinné čísla.
Float grossDivisor() na sadzbe daneTaxRate::fromBasisPoints($bp)->netFromGross($gross)Jeden presný zlomok, jedno zaokrúhlenie.
Ručne písané preškálovanie najmenších jednotiekMinorUnits::rescale()Alebo MinorUnits::toDecimal().
Konfiguračné inty ako PHP_ROUND_HALF_UPRoundingModes::fromValue(config('pkg.rounding'), 'pkg.rounding')Názvy RoundingMode v snake_case.

Databázové stĺpce

  • Existujúce bigint stĺpce so sumami fungujú s AsMoney ďalej; nad int64 zápis odmietne databáza.
  • Nové stĺpce: $table->money('price', currency: 'currency') — suma decimal(38, 0) a stĺpec meny.
  • Cast ukladá len kód meny, preto musí byť každá uložená mena registrovaná (zoznam ISO alebo currencies.custom).

Floaty na vstupe

Nahraďte (float) $request->input('price') volaním $request->money('price', 'EUR') — JSON 1.1 bude 110 centov, nie 111 — a vopred validujte cez MoneyAmount::in('EUR').

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.