PHPackages                             r94ever/php-currency-exchange-rate - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. r94ever/php-currency-exchange-rate

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

r94ever/php-currency-exchange-rate
==================================

Currency exchange rate package for PHP

v1.1.0(7mo ago)03↓50%MITPHPPHP ^8.2CI passing

Since Oct 5Pushed 7mo agoCompare

[ Source](https://github.com/r94ever/php-currency-exchange-rate)[ Packagist](https://packagist.org/packages/r94ever/php-currency-exchange-rate)[ Docs](https://github.com/r94ever/php-currency-exchange-rate)[ RSS](/packages/r94ever-php-currency-exchange-rate/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (3)Dependencies (2)Versions (4)Used By (0)

Currency exchange rate package for PHP
======================================

[](#currency-exchange-rate-package-for-php)

[![Latest Version on Packagist](https://camo.githubusercontent.com/a97c9f8b68190a41ef63d7162bc9ed0ee104e8f9b5a02cf26fe2d89289e442bd/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f723934657665722f7068702d63757272656e63792d65786368616e67652d726174652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/r94ever/php-currency-exchange-rate)[![Tests](https://github.com/r94ever/php-currency-exchange-rate/actions/workflows/run-tests.yml/badge.svg)](https://github.com/r94ever/php-currency-exchange-rate/actions/workflows/run-tests.yml)[![License](https://camo.githubusercontent.com/53f53690dbcc543f683fda3e10c5fd2b4aa7251d80b8714052f8e781c8d9cb11/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f723934657665722f6c61726176656c2d6d656469612e737667)](https://github.com/r94ever/laravel-media/blob/master/LICENSE.md)

This package provides a simple and easy way to get currency exchange rates from various providers.

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require r94ever/php-currency-exchange-rate
```

Usage
-----

[](#usage)

```
use R94ever\CurrencyExchangeRate\ExchangeRate;
use R94ever\CurrencyExchangeRate\Providers\ExchangeRateHost;
use R94ever\CurrencyExchangeRate\Enums\Currency;

// Create a new ExchangeRateHost provider with your access key.
$provider = new ExchangeRateHost('YOUR_ACCESS_KEY');

// Create a new ExchangeRate instance.
$exchangeRate = new ExchangeRate($provider);

// Convert 100 USD to EUR.
$result = $exchangeRate->convert(100, Currency::USD, Currency::EUR);
echo $result; // Example output: 85.5

// Get multiple exchange rates at once
$rates = $exchangeRate->getRates(Currency::USD, [Currency::EUR, Currency::GBP, Currency::JPY]);
foreach ($rates as $rate) {
    echo sprintf(
        "1 %s = %s %s\n",
        $rate->source->value,
        $rate->rate,
        $rate->target->value
    );
}
/*
Output example:
1 USD = 0.85 EUR
1 USD = 0.73 GBP
1 USD = 110.25 JPY
*/
```

Current Supported Providers
---------------------------

[](#current-supported-providers)

- [ExchangeRateHost](https://exchangerate.host)

Extending
---------

[](#extending)

This package is designed to be extensible. You can easily create a new provider to fetch rates from another source or use your own HTTP Client.

### Creating a Custom Provider

[](#creating-a-custom-provider)

To fetch exchange rate data from another API, you just need to create a new class that extends `BaseProvider` and implement the `convert` method.

1. **Create your Provider class:**

    ```
