darkfriend/php-tenge-rates

PHP wrapper for Kazakhstan Official National Bank tenge currency rates

1.0.0 2022-08-23 10:41 UTC

This package is auto-updated.

Last update: 2024-10-23 15:26:17 UTC


README

PHP version Travis CI build

Данный компонент является оберткой для обработки курса от Нацбанка.

Актуальный курс доступен по ссылке https://nationalbank.kz/rss/get_rates.cfm?fdate=23.02.2022

Установка

Предпочтительный способ установки - через composer

$ composer require darkfriend/php-tenge-rates

Конвертация в тенге

<?php

require __DIR__ . '/vendor/autoload.php';
use Darkfriend\TengeRates\CurrencyRates;

$rates = new CurrencyRates();
echo $rates->convertToTenge('USD', 100);

Конвертация из тенге

<?php

require __DIR__ . '/vendor/autoload.php';
use Darkfriend\TengeRates\CurrencyRates;

$rates = new CurrencyRates('23.08.2022');
echo $rates->convertFromTenge('GBP', 100);

Все возможные коды валют:

  • AUD
  • GBP
  • DKK
  • AED
  • USD
  • EUR
  • CAD
  • CNY
  • KWD
  • KGS
  • LVL
  • MDL
  • NOK
  • SAR
  • RUB
  • XDR
  • SGD
  • TRL
  • UZS
  • UAH
  • SEK
  • CHF
  • EEK
  • KRW
  • JPY
  • BYN
  • PLN
  • ZAR
  • TRY
  • HUF
  • CZK
  • TJS
  • HKD
  • BRL
  • MYR
  • AZN
  • INR
  • THB
  • AMD
  • GEL
  • IRR
  • MXN

Прохождение по валютам

Ниже предоставлен пример кода для прохождения по всем валютам. Класс \Darkfriend\TengeRates\CurrencyRates имплементирует интерфейсы \Countable и \IteratorAggregate, так что с его объектами можно орудовать как с массивами.

<?php

require __DIR__ . '/vendor/autoload.php';
use Darkfriend\TengeRates\CurrencyRates;

$rates = new CurrencyRates();

/** @var \Darkfriend\TengeRates\Currency $rate */
foreach ($rates as $rate) {
    echo "{$rate->name} - {$rate->price}";
}

Лимит времени запроса

По умолчанию лимит времени запроса стоит 1 секунду. Если вы хотите сменить его, то инициализируйте класс CurrencyRates со вторым параметром $timeout.

<?php

require __DIR__ . '/vendor/autoload.php';
use Darkfriend\TengeRates\CurrencyRates;
$rates = new CurrencyRates('23.08.2022', 15); // timeout 15 secs