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

Každé Money nesie Currency — readonly hodnotu s code, exponent, name, symbol, numericCode a iso. Register je naplnený pribaleným zoznamom ISO 4217: 165 mien zo SIX List One (vydaný 2026-09-17) s anglickými symbolmi CLDR 47.

use RoundlyConsulting\Money\Currency;
use RoundlyConsulting\Money\Facades\Currencies;

Currencies::get('EUR')->exponent;          // 2
Currencies::find('XYZ');                   // null
Currencies::has('JPY');                    // true
Currencies::findByNumericCode(978);        // EUR
Currency::of('bhd')->numericCodeString();  // "048" — lookups trim and upper-case
Currency::of('JPY')->exponent;             // 0
Currency::of('EUR')->minorPerMajor();      // "100"
Currency::of('USD')->displaySymbol();      // "$"
Currency::of('CHF')->displaySymbol();      // "CHF" — the code when there is no symbol
Currencies::iso(); Currencies::custom(); Currencies::all();

Vlastné meny

Pridajte body, kredity alebo kryptomeny až s 18 desatinnými miestami — v konfigurácii:

// config/money.php
'currencies' => [
    'iso' => true,
    'custom' => [
        'PTS' => ['exponent' => 0, 'name' => 'Loyalty points', 'symbol' => 'pts'],
        'BTC' => ['exponent' => 8, 'symbol' => '₿'],
        'ETH' => ['exponent' => 18, 'symbol' => 'Ξ'],
    ],
    'allowed' => ['EUR', 'USD', 'CZK'],   // currencies users may pick
],

…alebo v metóde boot() service providera:

// In a service provider's boot()
Currencies::register(Currency::custom('ETH', 18, 'Ether', 'Ξ'));
Currencies::register(Currency::custom('PTS', 0, 'Loyalty points', 'pts'));

Money::ofMajor('1.5', 'ETH')->minor();          // "1500000000000000000"
Money::ofMinor(1200, 'PTS')->format('en_US');   // "pts 1,200"
  • ISO meny sa nedajú nikdy predefinovať — CurrencyAlreadyRegistered.
  • Vlastné kódy majú 2–10 znakov (písmeno, potom písmená alebo číslice), exponent 0..18 a musia sa zmestiť do schema.currency_length — pri kódoch ako USDT ho zvýšte pred migráciou.
  • Opätovná registrácia existujúceho vlastného kódu vyžaduje replace: true.
  • Identitu tvorí kód + exponent: ručne vytvorená Currency('EUR', 3, …) je iná mena a aritmetika medzi nimi vyhodí výnimku.
  • Registrujte len pri štarte (boot) — workery Octane zdieľajú singleton registra.
  • Zrušené kódy (HRK, SKK, BGN) nie sú pribalené; ak potrebujete historické dáta, zaregistrujte ich ako vlastné meny.

Obmedzenie mien na vstupe

currencies.allowed obmedzí, ktoré meny si môžu používatelia zvoliť — riadi pravidlo CurrencyCode aj MoneyAmount::inCurrencyFrom() — a nikdy neobmedzuje dáta, ktoré už máte uložené.

Výpis registra

php artisan money:currencies                    # the whole registry
php artisan money:currencies --iso              # only bundled ISO 4217 currencies
php artisan money:currencies --custom           # only custom currencies
php artisan money:currencies --code=USD --code=CZK

Bez fasády injektujte kontrakt RoundlyConsulting\Money\Contracts\CurrencyRegistry — ide o ten istý singleton, ktorý používa Currencies.

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.