承接 tomwright/currency-php 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

tomwright/currency-php

Composer 安装命令:

composer require tomwright/currency-php

包简介

A small package to facilitate currency conversions in PHP.

README 文档

README

Build Status Latest Stable Version Total Downloads Monthly Downloads Daily Downloads License

Installation

composer install tomwright/currency-php

Usage

CurrencyPHP is just a basic wrapper. It cannot do conversions out of the box... Saying that... you only need to provide it with the conversion rates.

$rateFetcher = new MyConversionRateFetcher();
$factory = new CurrencyFactory($rateFetcher);

$gbp = $factory->create('GBP');
$usd = $factory->create('USD');

$priceInGBP = 100;
$priceInUSD = $gbp->convertTo($usd, $priceInGBP);
echo $priceInUSD; // 126

Rate Fetchers

Rate Fetchers are what CurrencyPHP uses to get conversion rates. Any Rate Fetcher you create should implement ConversionRateFetcherInterface.

Existing Rate Fetchers

If you have created your own Rate Fetcher and want it included here, please submit a pull request.

Creating Your Own

The following Rate Fetcher gives you some fixed exchange rates:

  • GBP to USD
  • USD to GBP
  • GBP to CAD
  • CAD to USD
class FixedRateFetcher implements ConversionRateFetcherInterface
{

    /**
     * @param Currency $from
     * @param Currency $to
     * @return float
     */
    public function getConversionRate(Currency $from, Currency $to)
    {
        $rates = [
            [
                'from' => 'GBP',
                'to' => 'USD',
                'rate' => 1.2547,
            ],
            [
                'from' => 'USD',
                'to' => 'GBP',
                'rate' => 0.7974,
            ],
            [
                'from' => 'GBP',
                'to' => 'CAD',
                'rate' => 1.6612,
            ],
            [
                'from' => 'CAD',
                'to' => 'USD',
                'rate' => 0.7539,
            ],
        ];

        $result = null;

        foreach ($rates as $rate) {
            if ($rate['from'] === $from->getCurrencyCode() && $rate['to'] === $to->getCurrencyCode()) {
                $result = $rate['rate'];
            }
        }
        return $result;
    }
}

Handling unknown conversion rates

One way conversion rates

The above Rate Fetcher has rates for both GBP to USD, and USD to GBP and this works great... but you'll also notice that it has CAD to USD, but no USD to CAD conversion rates. There is some logic implemented so that you only need to store 1 way conversion rates and it will automatically invert the rate if required.

Thanks to this logic, you can run a USD to CAD conversion using the above Rate Fetcher with no problems. The full list of conversion that the above can handle is as follows:

  • GBP to USD
  • USD to GBP
  • GBP to CAD
  • CAD to GBP
  • CAD to USD
  • USD to CAD

Missing conversion rates

If no conversion rate exists at all between the 2 currencies, an UnhandledConversionRate Exception will be thrown.

统计信息

  • 总下载量: 197
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2017-02-02

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固