oneforge / forexquotes
Library to fetch and parse realtime Forex quotes and convert currencies
Installs: 12 008
Dependents: 2
Suggesters: 0
Security: 0
Stars: 72
Watchers: 13
Forks: 14
Open Issues: 2
Requires
- php: >=5.6.4
- guzzlehttp/guzzle: ^7.0
- wrench/wrench: ^2.0
This package is auto-updated.
Last update: 2024-12-10 23:52:28 UTC
README
php-forex-quotes is a 1Forge PHP Library for fetching realtime forex quotes. See the examples for REST and WebSocket implementation in the /examples folder.
Table of Contents
Requirements
- PHP >= 6.0.1
- An API key which you can obtain for free at https://1forge.com/register
Installation
composer require oneforge/forexquotes
Or in your composer.json
"require": { "oneforge/forexquotes": "~6.0" },
Usage
Instantiate the client
<?php use OneForge\ForexQuotes\ForexDataClient; //You can get an API key for free at 1forge.com $client = new ForexDataClient('YOUR_API_KEY');
Get the list of available symbols:
$client->getSymbols();
Get quotes for specified symbols:
$client->getQuotes([ 'AUD/USD', 'GBP/JPY' ]);
Convert from one currency to another:
$client->convert('USD', 'EUR', 100);
Check if the market is open:
if ($client->marketIsOpen()) { echo "Market is open"; }
Check your usage / quota limit:
$client->quota();
Stream quote updates:
WebSocket quote streaming is only available on paid plans.
//Handle incoming price updates from the server $client->onUpdate(function($symbol, $data) { echo $symbol . ": " . $data["b"] . " " .$data["a"] . " " . $data["p"]."\n"; }); //Handle non-price update messages $client->onMessage(function($message) { echo $message; }); //Connect to the server $client->connect(function($client) { //Subscribe to a single currency pair $client->subscribeTo('EUR/USD'); //Subscribe to an array of currency pairs $client->subscribeTo([ 'GBP/JPY', 'AUD/CAD', 'EUR/CHF' ]); //Subscribe to all currency pairs $client->subscribeToAll(); //Unsubscribe from a single currency pair $client->unsubscribeFrom('EUR/USD'); //Unsubscribe from an array of currency pairs $client->unsubscribeFrom([ 'GBP/JPY', 'AUD/CAD', 'EUR/CHF' ]); //Unsubscribe from all currency pairs $client->unsubscribeFromAll(); });
Contributing
Thank you for considering contributing! Any issues, bug fixes, suggestions, improvements or help in any other way is always appreciated. Please feel free to open an issue or create a pull request.
Support and Contact
Please contact me at contact@1forge.com if you have any questions or requests.
License and Terms
This library is provided without warranty under the MIT license.