Search by

alf89 / cb

alf07

Пакет для получения курсов валют с официального api ЦБ РФ

Package info

github.com/alf07/cb

pkg:composer/alf89/cb

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-08-11 15:21 UTC

This package is auto-updated.

Last update: 2026-08-29 10:44:56 UTC


README

cb

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:

CBR XML Daily

Пакет получает актуальные данные из внешнего API.

Актуальность и доступность данных зависят от внешнего API.

Лицензия

Пакет распространяется под лицензией MIT.

Автор

Литвиненко Роман Александрович

Contributing

Буду рад предложениям, исправлениям и улучшениям.

Если вы нашли ошибку или хотите предложить новую возможность, создайте Issue или Pull Request.