wujunze/money-wrapper

MoneyPHP Wrapper
3,803 10
Install
composer require wujunze/money-wrapper
Latest Version:1.0.2
PHP:>=7.1
License:MIT
Last Updated:Jul 4, 2018
Links: GitHub  ·  Packagist
Maintainer: wujunze

Build Status Latest Stable Version Total Downloads License

MoneyPHP Wrapper

Base on money-wrapper

This is a wrapper for Money.

This wrapper:

  1. Provide a Money helper - money()
  2. Intended for Laravel Framework, but can be use outside from Laravel Framework as well.
  3. Provide common usage such as:
  • For Human Readability - RM 1.00, RM 345.00
  • For Common Display - 1.00, 345.00
  • For Machine (intended format to store in Database - integer) - 100, 34500
  • Fixed Exchange Rate Conversion - $ 1 > RM 3.87

Installation

  1. In order to install wujunze/money-wrapper in your Laravel project, just run the composer require command from your terminal:
$ composer require wujunze/money-wrapper
  1. Then in your config/app.php add the following to the providers array:
wujunze\MoneyWrapper\MoneyWrapperServiceProvider::class,
  1. In the same config/app.php add the following to the aliases array:
'MoneyWrapper' => wujunze\MoneyWrapper\MoneyWrapperFacade::class,
  1. Publish Money Wrapper Config:
$ php artisan vendor:publish --tag=money-wrapper-config

You may want to add more currency details based on country. See contributions section below for the details.

Usage

Get Money Wrapper Instance

By default, MYR, Malaysia Ringgit currency will be use.

You may override either by .env file or pass the country Alpha 2 code when calling money() helper.

$money = money(); // by default it will use MY
$moneyUsd = money('US'); // pass the country code - ISO Alpha 2

You can add more currencies after publishing the Money Wrapper configuration file and added more supported currencies.

Please refer to Country Code and it's currency swift code and symbol in Currency List.

Get Money Format

echo money()->toHuman(100); // RM 1.00, useful for human readability
echo money()->toCommon(100); // 1.00
echo money()->toMachine('1.00'); // 100, always store in database as integer. 

Convert Fixed Rate

$fixedExchange = [
    'MYR' => [
        'USD' => 3.87,
    ],
];
echo money()->convertFixedRate($fixedExchange, 100, 'USD')->getAmount(); // 387

Recommended data type used in database is big integer

Contributions

Updating currency list (config/currency.php) available based on following resources:

  1. Use Country ISO Alpha 2 Code for the Key as defined in Country List.
  2. Refer currency list for the available currency.
  3. Use symbol as per stated in www.xe.com.

The structure will be as following:

[
	'MYR' => [
		'swift_code' => 'MYR',
		'symbol' => 'RM'
	]
]

License

This package is open-sourced software licensed under the MIT license.

Related Packages

skizu/simpleapi

Simple api wrapper with easy caching and throttling

170 2
php-tmdb/laravel

Laravel Package for TMDB ( The Movie Database ) API. Provides easy access to the...

53,315 160
florianv/laravel-swap

Drop-in Laravel currency conversion: auto-discovered service provider, facade, a...

2,379,932 336