PHP Classes

File: docs/files/Currency.php.txt

Recommend this page to a friend!
  Classes of Temuri Takalandze   PHP NBG Currency   docs/files/Currency.php.txt   Download  
File: docs/files/Currency.php.txt
Role: Documentation
Content type: text/plain
Description: Documentation
Class: PHP NBG Currency
Get currency values from National Bank of Georgia
Author: By
Last change:
Date: 4 years ago
Size: 2,906 bytes
 

Contents

Class file image Download
<?php /** * Class Currency | src/Currency.php * * @category Library * @package ABGEO\NBG * @author Temuri Takalandze <takalandzet@gmail.com> * @license MIT https://github.com/ABGEO07/nbg-currency/blob/master/LICENSE * @link https://github.com/ABGEO07/nbg-currency */ namespace ABGEO\NBG; use ABGEO\NBG\Exception\InvalidCurrencyException; use DateTime; use SoapClient; use SoapFault; /** * Class Currency * @package ABGEO\NBG */ class Currency { /** * Current Currency object. * * @var Model\Currency */ private $currency; const API_URL = 'http://nbg.gov.ge/currency.wsdl'; /** * Currency constructor. * * @param string $currencyCode Currency code. * * @throws SoapFault * @throws InvalidCurrencyException */ public function __construct(string $currencyCode) { if (!defined('\ABGEO\NBG\Helper\CurrencyCodes::'.strtoupper($currencyCode))) { throw new InvalidCurrencyException($currencyCode); } $this->init($currencyCode); } /** * Get data from API and fill Currency model for given Currency Code. * * @param string $currencyCode Currency code. * * @return void * * @throws SoapFault */ private function init(string $currencyCode) { $client = new SoapClient(self::API_URL); $currencyDate = DateTime::createFromFormat( 'Y-m-d', $client->GetDate($currencyCode) ); $this->currency = (new Model\Currency()) ->setCurrency((float)$client->GetCurrency($currencyCode)) ->setDescription($client->GetCurrencyDescription($currencyCode)) ->setChange((float)$client->GetCurrencyChange($currencyCode)) ->setRate((int)$client->GetCurrencyRate($currencyCode)) ->setDate($currencyDate); } /** * Get Currency Value. * * @return float */ public function getCurrency(): float { return $this->currency ->getCurrency(); } /** * Get Currency Description. * * @return string Currency Description. */ public function getDescription(): string { return $this->currency ->getDescription(); } /** * Get Currency Change Value. * * @return float Currency Change Value. */ public function getChange(): float { return $this->currency ->getChange(); } /** * Get Currency change rate. * * @return int Currency change rate. */ public function getRate(): int { return $this->currency ->getRate(); } /** * Get Currency date. * * @return DateTime Currency date. */ public function getDate(): DateTime { return $this->currency ->getDate(); } }