---
title: "Konfigurácia — Money for Laravel | Roundly"
description: "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."
url: https://roundly-consulting.com/sk/open-source/navody/money-for-laravel/konfiguracia
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)

# Konfigurácia

Balík funguje bez akejkoľvek konfigurácie. Publikovaný config/money.php v plnom znení:

```php
return [
    'default_currency' => env('MONEY_DEFAULT_CURRENCY', 'EUR'),

    'currencies' => [
        'iso' => env('MONEY_ISO_CURRENCIES', true),
        'custom' => [],
        'allowed' => null,
    ],

    'schema' => [
        'currency_length' => env('MONEY_CURRENCY_LENGTH', 3),
        'precision' => env('MONEY_PRECISION', 38),
    ],

    'rounding' => env('MONEY_ROUNDING', 'half_away_from_zero'),

    'formatting' => [
        'driver' => env('MONEY_FORMATTER', 'auto'),
        'locale' => env('MONEY_LOCALE'),
        'display' => 'symbol',
        'fallback' => [
            'pattern' => '{sign}{amount} {code}',
            'decimal_separator' => '.',
            'thousands_separator' => ',',
        ],
    ],

    'macros' => [
        'collection' => true,
        'request' => true,
        'blade' => true,
        'validation' => true,
    ],

    'exchange' => [
        'default' => env('MONEY_EXCHANGE_DRIVER', 'ecb'),
        'chain' => ['database', 'ecb'],
        'pivot' => 'EUR',
        'rounding' => env('MONEY_EXCHANGE_ROUNDING', 'half_even'),
        'timezone' => env('MONEY_EXCHANGE_TIMEZONE', 'Europe/Berlin'),   // "today" for undated lookups
        'max_age_days' => env('MONEY_EXCHANGE_MAX_AGE_DAYS', 7),

        'cache' => [
            'enabled' => env('MONEY_EXCHANGE_CACHE', true),
            'store' => env('MONEY_EXCHANGE_CACHE_STORE'),
            'ttl' => env('MONEY_EXCHANGE_CACHE_TTL', 3600),
            'prefix' => 'money:exchange',
        ],

        'providers' => [
            'config' => [
                'rates' => [],   // ['EUR' => ['USD' => '1.0854']]
            ],
            'database' => [
                'table' => env('MONEY_EXCHANGE_TABLE', 'money_exchange_rates'),
                'model' => env('MONEY_EXCHANGE_MODEL', RoundlyConsulting\Money\Models\CurrencyRate::class),
            ],
            'ecb' => [
                'daily_url' => 'https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml',
                'recent_url' => 'https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist-90d.xml',
                'history_url' => 'https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist.xml',
                'timeout' => env('MONEY_ECB_TIMEOUT', 10),
                'retries' => 2,
                'max_bytes' => 33554432,
                'cache_ttl' => 3600,
            ],
        ],

        'refresh' => [
            'schedule' => env('MONEY_EXCHANGE_SCHEDULE', false),
            'cron' => '30 16 * * 1-5',
            'timezone' => 'Europe/Berlin',
            'source' => 'ecb',
        ],
    ],
];
```

## Všetky kľúče

| Kľúč | Predvolené | Env | Účel |
| --- | --- | --- | --- |
| `default_currency` | EUR | MONEY\_DEFAULT\_CURRENCY | Mena pre Request::money() bez meny, parser bez tokenu meny (alebo so zdieľaným symbolom, napríklad $, ktorý táto mena používa) a money\_amount bez parametra. |
| `currencies.iso` | true | MONEY\_ISO\_CURRENCIES | Naplniť register pribaleným zoznamom ISO 4217 (165 mien); false = len vlastné meny. |
| `currencies.custom` | \[\] | — | Ďalšie meny: kód => exponent (0..18), názov, symbol. |
| `currencies.allowed` | null | — | Povolené meny pre vstup od používateľa (null = celý register). Musí to byť pole kódov. Uložené dáta nikdy neobmedzuje. |
| `schema.currency_length` | 3 | MONEY\_CURRENCY\_LENGTH | Dĺžka varchar stĺpcov meny (3..10) a najdlhší vlastný kód. Po migrácii nemenné. |
| `schema.precision` | 38 | MONEY\_PRECISION | P stĺpcov súm decimal(P, 0) (19..65); vynucuje ho cast aj MoneyAmount. Po migrácii nemenné. |
| `rounding` | half\_away\_from\_zero | MONEY\_ROUNDING | Predvolené zaokrúhľovanie služieb (skracovanie číslic vo formátovači, avgMoney). Hodnotové objekty konfiguráciu nečítajú. |
| `formatting.driver` | auto | MONEY\_FORMATTER | auto (intl, ak je načítané, inak decimal), intl (bez rozšírenia zlyhá) alebo decimal. |
| `formatting.locale` | null | MONEY\_LOCALE | null = podľa app()->getLocale(). |
| `formatting.display` | symbol | — | Predvolené zobrazenie meny: symbol, code alebo none. |
| `formatting.fallback.pattern` | {sign}{amount} {code} | — | Vzor deterministického formátovača; zástupné znaky {sign} {amount} {code} {symbol}. |
| `formatting.fallback.decimal_separator` | . | — | Desatinný oddeľovač — bez intl ho používa aj parser. Prázdna hodnota = nenastavená → '.'. |
| `formatting.fallback.thousands_separator` | , | — | Oddeľovač tisícov formátovača a parsera bez intl. Akýkoľvek reťazec. Jediné nastavenie, kde je prázdna hodnota hodnotou: ' ' zoskupuje medzerou a '' znamená bez symbolu zoskupenia; ',' dostane len null. |
| `macros.collection` | true | — | Registrovať sumMoney / minMoney / maxMoney / avgMoney. |
| `macros.request` | true | — | Registrovať Request::money(). |
| `macros.blade` | true | — | Registrovať @money. |
| `macros.validation` | true | — | Registrovať textové pravidlá currency\_code a money\_amount. |
| `exchange.default` | ecb | MONEY\_EXCHANGE\_DRIVER | Predvolený driver: config, database, ecb, chain alebo vlastný. |
| `exchange.chain` | \['database', 'ecb'\] | — | Drivery, ktoré skúša driver chain, v poradí — zoznam názvov driverov, nikdy nie samotný chain. |
| `exchange.pivot` | EUR | — | Mena na trianguláciu pre config a database. Nenastavená hodnota (null alebo prázdna) = bez pivotnej meny. |
| `exchange.rounding` | half\_even | MONEY\_EXCHANGE\_ROUNDING | Predvolené zaokrúhľovanie prevodov. |
| `exchange.timezone` | Europe/Berlin | MONEY\_EXCHANGE\_TIMEZONE | Časové pásmo „dneška“ pre vyhľadávania a manuálne kurzy bez dátumu a pre vrátené dátumy kurzov. Zadaný dátum je vždy svojím vlastným kalendárnym dňom (Y-m-d vo vlastnom časovom pásme). |
| `exchange.max_age_days` | 7 | MONEY\_EXCHANGE\_MAX\_AGE\_DAYS | Najnovší kurz starší ako tento limit je zastaraný a odmietne sa. Aspoň 0 (0 prijme len kurz z daného dňa). |
| `exchange.cache.enabled` | true | MONEY\_EXCHANGE\_CACHE | Cachovať vyhľadávania driverov database, ecb a vlastných. |
| `exchange.cache.store` | null | MONEY\_EXCHANGE\_CACHE\_STORE | Cache store (null = predvolený). |
| `exchange.cache.ttl` | 3600 | MONEY\_EXCHANGE\_CACHE\_TTL | Životnosť cache v sekundách, aspoň 1 (cache vypnete cez cache.enabled). |
| `exchange.cache.prefix` | money:exchange | — | Prefix kľúčov cache. |
| `exchange.providers.config.rates` | \[\] | — | Statické kurzy ako desatinné reťazce: \['EUR' => \['USD' => '1.0854'\]\]. |
| `exchange.providers.database.table` | money\_exchange\_rates | MONEY\_EXCHANGE\_TABLE | Tabuľka kurzov. |
| `exchange.providers.database.model` | CurrencyRate::class | MONEY\_EXCHANGE\_MODEL | Vymeniteľný model kurzu — CurrencyRate alebo jeho podtrieda; čokoľvek iné vyhodí InvalidMoneyConfiguration. |
| `exchange.providers.ecb.daily_url / recent_url / history_url` | ecb.europa.eu | — | Denný, 90-dňový a úplný historický feed. |
| `exchange.providers.ecb.timeout` | 10 | MONEY\_ECB\_TIMEOUT | HTTP timeout v sekundách, aspoň 1. |
| `exchange.providers.ecb.retries` | 2 | — | Počet opakovaní po prvom pokuse, aspoň 0. |
| `exchange.providers.ecb.max_bytes` | 33554432 | — | Limit veľkosti odpovede (32 MiB), aspoň 1. |
| `exchange.providers.ecb.cache_ttl` | 3600 | — | Cache spracovaného feedu v sekundách, aspoň 1. |
| `exchange.refresh.schedule` | false | MONEY\_EXCHANGE\_SCHEDULE | Zaregistrovať plánovanú aktualizáciu kurzov. |
| `exchange.refresh.cron` | 30 16 \* \* 1-5 | — | Kedy plán beží (pracovné dni o 16:30). |
| `exchange.refresh.timezone` | Europe/Berlin | — | Časové pásmo cron výrazu. |
| `exchange.refresh.source` | ecb | — | Zdroj, z ktorého plán aktualizuje. |

## Prostredie (env)

Bežné nastavenia sa riadia cez env, takže konfiguráciu publikujete len zriedka:

```bash
MONEY_DEFAULT_CURRENCY=EUR
MONEY_ROUNDING=half_away_from_zero
MONEY_FORMATTER=auto
MONEY_EXCHANGE_DRIVER=chain
MONEY_EXCHANGE_SCHEDULE=true
MONEY_EXCHANGE_MAX_AGE_DAYS=7
```

## Vypínanie makier

Každú pomôcku pre vývojárov — makrá kolekcií, Request::money(), @money a textové validačné pravidlá — môžete v sekcii macros vypnúť. Existujúce makro aplikácie s rovnakým názvom má vždy prednosť. Makrá Blueprintu vypnúť nemožno: závisia od nich publikované migrácie.

## Prepínače zapnuté/vypnuté

Prepínače — currencies.iso, macros.\*, exchange.cache.enabled a exchange.refresh.schedule — prijímajú true/false, 1/0, on/off alebo yes/no, z .env aj z publikovaného súboru; čokoľvek iné vyhodí InvalidConfigurationException z package toolkitu s názvom kľúča, takže preklep sa nikdy potichu neprečíta ako predvolená hodnota.

## Striktné nastavenia

Aj všetky ostatné nastavenia sa čítajú striktne, v mieste použitia. Nenastavený kľúč — chýbajúci, null alebo prázdny ('' či len medzery, napríklad riadok MONEY\_ROUNDING= v .env) — dostane predvolenú hodnotu; prítomná hodnota nesprávneho tvaru vyhodí InvalidMoneyConfiguration s názvom kľúča a nikdy sa nepretypuje ani nenahradí predvolenou:

- Celé čísla prijímajú int alebo kanonický celočíselný reťazec („30“, „-5“) v uvedenom rozsahu — „five“, „5.5“ či „1e3“ vyhodia výnimku.
- Názvy — mena, driver, časové pásmo, tabuľka, cache store a prefix, URL, locale, vzor — musia byť reťazce.
- Režimy zaokrúhľovania, formatting.driver a formatting.display musia uvádzať jednu zo svojich hodnôt.
- currencies.allowed, currencies.custom, exchange.chain a exchange.providers.config.rates musia byť polia — zoznam povolených mien zadaný reťazcom, napríklad 'EUR', vyhodí výnimku, namiesto toho, aby povolil všetky meny.
- exchange.providers.database.model musí byť CurrencyRate alebo jeho podtrieda — čokoľvek iné vyhodí výnimku, namiesto návratu k modelu balíka.

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