cleaniquecoders / money-wrapper
MoneyPHP Wrapper
Requires
- php: >=7.2
- illuminate/support: ^5.5|^5.6|^5.7|^5.8
- moneyphp/money: ^3.1
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: 3.5.*|3.6.*|3.7.*|3.8.*
- phpunit/phpunit: ^6.5|^7.0|^8.0
This package is auto-updated.
Last update: 2022-03-12 07:53:34 UTC
README
MoneyPHP Wrapper
This is a wrapper for Money.
This wrapper:
- Provide a Money helper -
money()
- Intended for Laravel Framework, but can be use outside from Laravel Framework as well.
- 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
- In order to install
cleaniquecoders/money-wrapper
in your Laravel project, just run the composer require command from your terminal:
$ composer require cleaniquecoders/money-wrapper
- Then in your
config/app.php
add the following to the providers array:
CleaniqueCoders\MoneyWrapper\MoneyWrapperServiceProvider::class,
- In the same
config/app.php
add the following to the aliases array:
'MoneyWrapper' => CleaniqueCoders\MoneyWrapper\MoneyWrapperFacade::class,
- 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:
- Use Country ISO Alpha 2 Code for the Key as defined in Country List.
- Refer currency list for the available currency.
- 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.