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=CZKBez 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 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.