Immutable PHP Currency Converter

Immutable PHP Currency Converter

The gocanto/converter composer package by Gustavo Ocanto is an immutable PHP currency converter that’s data-agnostic.

Related: Laravel Money is a package for formatting money in Laravel projects.

You need to bring your own database or repository of currency conversion data, and implement a data layer for the conversions. Here’s an example repository from the project:

<?php

namespace Gocanto\Converter\Examples;

use Gocanto\Converter\CurrencyValue;
use Gocanto\Converter\Interfaces\CurrenciesRepositoryInterface;

class CurrenciesRepositoryExample implements CurrenciesRepositoryInterface
{
    /**
     * @param string $code
     * @return CurrencyValue
     */
    public function getCurrentRate(string $code) : CurrencyValue
    {
        // here, you need to write any related logic to query your DB. Once you have this info,
        // you will have to create the currency value object with the valid info as so:

        return new CurrencyValue('U.S. Dollars', 'USD', '$', 0.731271);
    }
}

Next, here’s an example of a currency conversion backed by the data repository:

use Gocanto\Converter\Examples\CurrenciesRepositoryExample;
use Gocanto\Converter\Converter;
use Gocanto\Converter\RoundedNumber;

$repository = new CurrenciesRepositoryExample;
$converter = new Converter($repository);

$conversion = $converter
    ->withAmount(RoundedNumber::make(10))
    ->withCurrency('SGD')
    ->convertTo('USD');

You can learn more about this package, get full installation instructions, and view the source code on GitHub at gocanto/converter.

Filed in: News
Laravel News Partners

Laravel Jobs

Senior Full-Time Laravel Developer (REMOTE)
Remote, ANYWHERE
Vue School
Senior Laravel Developer
Remote, USA & Canada Only
Givecloud
Backend Software Engineer
Remote, USA Only
CommentSold
Backend Software Engineer (x/f/m)
Remote
Smartbnb
Senior Developer
Remote
Shelterluv

Newsletter

Join 31,000+ others and never miss out on new tips, tutorials, and more.