Coder Social home page Coder Social logo

forex's Introduction

Forex

GitHub license

Providing live currency exchange rates in Laravel and Lumen, with configurable provider and caching.

Overview

For live currency exchange rates, your choice of provider depends on various factors, including pricing, features, and reliability, which sometimes change. The purpose of this package is to provide a fixed exchange rate endpoint for your application, which can be configured to use one of the various popular providers, and re-configured at any time to use a different provider if necessary.

Installation

Via Composer:

$ composer require viewflex/forex

Configuration

Configuration values must be specified in the application's .env file, or in your environment's $_ENV or $_SERVER arrays - all of these options are supported transparently. Below are sample configurations for the currently supported providers. You can also customize the cache refresh interval as described below.

Supported Providers

Currency Converter API (free)

FOREX_PROVIDER=CurrencyConverterApiFree
FOREX_PROVIDER_URL=http://free.currencyconverterapi.com/api/v6/convert

Currency Converter API (paid)

FOREX_PROVIDER=CurrencyConverterApi
FOREX_PROVIDER_URL=https://api.currencyconverterapi.com/api/v6/convert
FOREX_PROVIDER_KEY=<your-provider-key>

Fixer (free and paid)

FOREX_PROVIDER=Fixer
FOREX_PROVIDER_URL=https://data.fixer.io/api/latest
FOREX_PROVIDER_KEY=<your-provider-key>

*The free subscription supports only EUR as the base currency.

Open Exchange Rates (free and paid)

FOREX_PROVIDER=OpenExchangeRates
FOREX_PROVIDER_URL=https://openexchangerates.org/api/latest.json
FOREX_PROVIDER_KEY=<your-provider-key>

*The free subscription supports only USD as the base currency.

Caching

Use the FOREX_CACHE_MINUTES environment variable to specify how long a rate is cached. Unless specified, the default of 720 (12 hours) is used. Setting this variable to 0 disables caching of rates. Using a longer cache refresh interval can help you to avoid interruption of service (or extra charges if using a paid service).

Usage

$server = new \Viewflex\Forex\Forex();
echo $server->getRate('USD', 'CAD');

Tests

Tests can be run as described in the test documentation.

License

This software is offered for use under the MIT License.

Changelog

Release versions are tracked in the Changelog.

forex's People

Contributors

tarekadam avatar viewflex avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.