alf89 / cb
Пакет для получения курсов валют с официального api ЦБ РФ
Requires
- php: ^8.5
- illuminate/support: ^9.0|^10.0|^11.0|12.*|13.*
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-08-29 10:44:56 UTC
README
Laravel-пакет для получения актуальных курсов валют через API Центрального банка Российской Федерации.
Пакет предоставляет простой интерфейс для получения курса конкретной валюты или списка всех доступных валют.
Возможности
- Получение курса конкретной валюты по коду.
- Получение курсов всех доступных валют.
- Удобный доступ через Laravel Facade.
- Использование Laravel HTTP Client.
Требования
- PHP
^8.5 - Laravel 9, 10, 11, 12 или 13.
Установка
Установите пакет через Composer:
composer require alf89/cb
Laravel автоматически обнаружит и зарегистрирует CbServiceProvider.
После установки пакет готов к использованию.
Использование
Пакет предназначен для использования через Facade.
Получение курса валюты
use alf89\cb\Facades\Cb; $usd = Cb::currency('USD');
Например:
$usd = Cb::currency('USD'); echo $usd['CharCode']; echo $usd['Name']; echo $usd['Value'];
Результат:
[
'ID' => 'R01235',
'NumCode' => '840',
'CharCode' => 'USD',
'Nominal' => 1,
'Name' => 'Доллар США',
'Value' => 79.5671,
'Previous' => 79.1234,
]
Значения
ValueиPreviousприведены только для примера и изменяются в зависимости от актуального курса.
Получение всех валют
use alf89\cb\Facades\Cb; $currencies = Cb::currencies();
Получить конкретную валюту из результата:
$usd = $currencies['USD']; $eur = $currencies['EUR'];
Методы
currency(string $code)
Возвращает данные конкретной валюты по её коду.
$usd = Cb::currency('USD');
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
$code |
string |
Код валюты, например USD, EUR, CNY |
Возвращаемый массив содержит:
| Поле | Описание |
|---|---|
ID |
Идентификатор валюты |
NumCode |
Цифровой код валюты |
CharCode |
Буквенный код валюты |
Nominal |
Номинал |
Name |
Название валюты |
Value |
Текущий курс |
Previous |
Предыдущий курс |
Пример:
$eur = Cb::currency('EUR'); echo $eur['Value'];
currencies()
Возвращает данные всех доступных валют.
$currencies = Cb::currencies();
Ключом массива является буквенный код валюты:
$currencies['USD']; $currencies['EUR']; $currencies['CNY'];
Поддерживаемые валюты
Пакет работает с валютами, которые предоставляет используемый API.
| Код | Название |
|---|---|
| AUD | Австралийский доллар |
| AZN | Азербайджанский манат |
| DZD | Алжирский динар |
| GBP | Фунт стерлингов |
| AMD | Армянский драм |
| BHD | Бахрейнский динар |
| BYN | Белорусский рубль |
| BOB | Боливиано |
| BRL | Бразильский реал |
| HUF | Форинт |
| VND | Вьетнамский донг |
| HKD | Гонконгский доллар |
| GEL | Лари |
| DKK | Датская крона |
| AED | Дирхам ОАЭ |
| USD | Доллар США |
| EUR | Евро |
| EGP | Египетский фунт |
| INR | Индийская рупия |
| IDR | Индонезийская рупия |
| IRR | Иранский риал |
| KZT | Казахстанский тенге |
| CAD | Канадский доллар |
| QAR | Катарский риал |
| KGS | Киргизский сом |
| CNY | Китайский юань |
| CUP | Кубинское песо |
| MDL | Молдавский лей |
| MNT | Монголийский тугрик |
| NGN | Нигерийская найра |
| NZD | Новозеландский доллар |
| NOK | Норвежская крона |
| OMR | Оманский риал |
| PLN | Польский злотый |
| SAR | Саудовский риял |
| RON | Румынский лей |
| XDR | СДР |
| SGD | Сингапурский доллар |
| TJS | Таджикский сомони |
| THB | Тайский бат |
| BDT | Бангладешская така |
| TRY | Турецкая лира |
| TMT | Новый туркменский манат |
| UZS | Узбекский сум |
| UAH | Украинская гривна |
| CZK | Чешская крона |
| SEK | Шведская крона |
| CHF | Швейцарский франк |
| ETB | Эфиопский быр |
| RSD | Сербский динар |
| ZAR | Южноафриканский рэнд |
| KRW | Южнокорейская вона |
| JPY | Японская иена |
| MMK | Мьянманский кьят |
Обработка ошибок
При неуспешном HTTP-запросе пакет выбрасывает Exception.
use alf89\cb\Facades\Cb; try { $usd = Cb::currency('USD'); } catch (\Exception $e) { // Обработка ошибки }
Архитектура
src/
├── CbServiceProvider.php
├── Facades/
│ └── Cb.php
└── Services/
├── CurrencyService.php
└── CurrencyApiClient.php
Cb
Facade является публичной точкой входа в пакет:
Cb::currency('USD'); Cb::currencies();
CurrencyService
Отвечает за работу с данными валют.
CurrencyApiClient
Отвечает за HTTP-запрос к внешнему API.
CbServiceProvider
Регистрирует компоненты пакета в Laravel Service Container.
Источник данных
Для получения курсов используется API:
Пакет получает актуальные данные из внешнего API.
Актуальность и доступность данных зависят от внешнего API.
Лицензия
Пакет распространяется под лицензией MIT.
Автор
Литвиненко Роман Александрович
- GitHub: alf07
- Email: roma.alf89@gmail.com
- Telegram: @Alf88
- Канал в Макс https://max.ru/channel_alf_dev
Contributing
Буду рад предложениям, исправлениям и улучшениям.
Если вы нашли ошибку или хотите предложить новую возможность, создайте Issue или Pull Request.