---
title: "Fasády Exchange a Currencies — Money for Laravel | Roundly"
description: "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."
url: https://roundly-consulting.com/sk/open-source/navody/money-for-laravel/fasada
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Money for Laravel](https://roundly-consulting.com/sk/open-source/navody/money-for-laravel.md)

# Fasády Exchange a Currencies

Money a Currency sú obyčajné hodnotové objekty, ktoré vytvárate priamo (pozrite sekciu Objekt Money). Služby okolo nich sú za dvoma fasádami: Exchange pre prevody a tabuľku uložených kurzov, Currencies pre register mien.

## Exchange

```php
use RoundlyConsulting\Money\Currency;
use RoundlyConsulting\Money\Facades\Exchange;

Exchange::convert($money, 'USD');                          // Money — default driver, latest rate
Exchange::convert($money, 'USD', now()->subDay());         // historical
Exchange::convertWithRate($money, 'CZK');                  // Conversion: original, converted, rate
Exchange::rate(Currency::of('EUR'), Currency::of('USD'));  // ExchangeRate
Exchange::driver('database')->rate(Currency::of('EUR'), Currency::of('USD'));
Exchange::getDefaultDriver();                              // "ecb"
Exchange::extend('fixer', fn ($app) => new FixerProvider(/* ... */));
Exchange::source('ecb')->fetch($from, $to);                // the raw, un-cached source
```

| Exchange:: | Vráti / urobí |
| --- | --- |
| `rate($from, $to, ?$on)` | ExchangeRate z predvoleného drivera (null = najnovší). |
| `convert($money, $to, ?$on, ?$rounding)` | Prevedené Money, zaokrúhlené raz (money.exchange.rounding). |
| `convertWithRate($money, $to, ?$on, ?$rounding)` | Conversion: pôvodná suma, prevedená suma a použitý kurz. |
| `driver(?$name) / provider(?$name)` | Cachovaný driver — config, database, ecb, chain alebo vlastný. |
| `getDefaultDriver()` | money.exchange.default, inak ecb. |
| `source($name)` | Surový driver bez cache, z ktorého čerpá aktualizácia. |
| `extend($driver, Closure $callback)` | Zaregistruje driver aplikácie — automaticky cachovaný. |
| `forgetDrivers()` | Zahodí vytvorené (cachované) inštancie driverov. |
| `rates()` | RateStore, ktorý spravuje tabuľku uložených kurzov. |
| `fake($rates = [], ?$pivot)` | Nasadí statické kurzy pre testy — pozrite sekciu Testovanie. |

## Exchange::rates() — tabuľka uložených kurzov

rates() spravuje tabuľku money\_exchange\_rates. Každý zápis ide jedinou cestou a manuálny riadok aktualizácia nikdy neprepíše:

```php
use RoundlyConsulting\Money\Enums\EcbFeed;
use RoundlyConsulting\Money\Facades\Exchange;

Exchange::rates()->refresh();                                        // RefreshResult: fetch the ECB daily feed now
Exchange::rates()->refresh(source: 'ecb', feed: EcbFeed::Recent, from: $from, to: $to);
Exchange::rates()->refreshLater(feed: EcbFeed::History);             // queue it (unique per source + feed)
Exchange::rates()->manual('EUR', 'CZK', '25.10', $date);             // a manual rate, today if undated
Exchange::rates()->store(...$rates);                                 // ExchangeRate ...$rates
Exchange::rates()->prune(before: now()->subYear(), includeManual: false, pretend: true); // int
```

| Exchange::rates()-> | Urobí | Vráti |
| --- | --- | --- |
| `refresh($source = 'ecb', $feed = EcbFeed::Daily, ?$from, ?$to)` | Hneď stiahne zdroj do tabuľky; spustí ExchangeRatesRefreshed, prípadne ExchangeRatesRefreshFailed a výnimku vyhodí ďalej. | `RefreshResult` |
| `refreshLater(same arguments)` | Zaradí rovnakú aktualizáciu do fronty — unikátnu pre zdroj a feed počas desiatich minút. | `void` |
| `store(ExchangeRate ...$rates)` | Upsert kurzov; uložený manuálny riadok prepíše len iný manuálny kurz. | `RefreshResult` |
| `manual($from, $to, $rate, ?$on)` | Jeden manuálny kurz (1 from = rate × to), platný dnes v money.exchange.timezone, ak nezadáte dátum. | `RefreshResult` |
| `prune($before, $includeManual = false, $pretend = false)` | Zmaže — s pretend len spočíta — riadky platné pred dátumom; manuálne zostanú, ak ich nezahrniete. | `int` |

Príkazy money:rates:refresh a money:rates:prune volajú tie isté metódy, takže pod Exchange::fake() sa zaznamená aj všetko, čo urobia.

## Currencies

Currencies sprístupňuje singleton registra mien — vyhľadávanie, registráciu a zoznamy (podrobnosti v sekcii Meny):

| Currencies:: | Vráti / urobí |
| --- | --- |
| `get($code)` | Currency — pri neznámom kóde vyhodí UnknownCurrency. |
| `find($code)` | Currency alebo null. |
| `has($code)` | Či je kód zaregistrovaný. |
| `findByNumericCode($numeric)` | Vyhľadanie podľa číselného kódu ISO (978 alebo „978“), prípadne null. |
| `register(Currency $currency, bool $replace = false)` | Pridá vlastnú menu — v metóde boot() service providera. |
| `all() / iso() / custom()` | list<Currency> — všetky, pribalený zoznam ISO alebo vlastné. |

Currencies nemá fake: register je v pamäti a deterministický. Exchange::fake() popisuje sekcia Testovanie.

## 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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/money-for-laravel.md)
