1. Go to this page and download the library: Download maba/monetary library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
maba / monetary example snippets
// ...
// lots of code using MyMoney class
// ...
class MyMoney implements MoneyInterface
{
// ...
public function getAmount()
{
// ...
}
public function getCurrency()
{
// ...
}
}
class MyMoneyFactory implements MoneyFactoryInterface
{
// create instances of MyMoney here
}
// construct $calculator with instance of MyMoneyFactory
$result = $calculator->add(new MyMoney('1', 'EUR'), new Money('2.12', 'EUR')); // you can mix classes, too
// $result is instance of MyMoney now
use Maba\Component\Math\BcMath;
use Maba\Component\Math\Math;
use Maba\Component\Math\NumberFormatter;
use Maba\Component\Math\NumberValidator;
use Maba\Component\Monetary\Factory\MoneyFactory;
use Maba\Component\Monetary\Formatting\FormattingContext;
use Maba\Component\Monetary\Formatting\MoneyFormatter;
use Maba\Component\Monetary\Information\MoneyInformationProvider;
use Maba\Component\Monetary\Validation\MoneyValidator;
use Maba\Component\Monetary\Money;
use Maba\Component\Monetary\MoneyCalculator;
// set up dependencies. I would really suggest to use DIC here
$math = new Math(new BcMath());
$informationProvider = new MoneyInformationProvider();
$factory = new MoneyFactory($math, new MoneyValidator($math, $informationProvider, new NumberValidator()));
$calculator = new MoneyCalculator($math, $factory, $informationProvider);
// make math operations on Money objects
$result = $calculator->ceil(
$calculator->mul(
$calculator->mul(
$calculator->add(new Money('12.23', 'EUR'), new Money('32.12', 'EUR')),
879134421.2183
),
12.33
)
);
// compare Money objects
if ($calculator->isGt($result, $factory->createZero())) {
// format Money objects as strings
$formatter = new MoneyFormatter(
$calculator,
$informationProvider,
new NumberFormatter($math),
array('EUR' => '€'), // optional - symbols to replace currency codes
'%currency%%amount%' // optional - custom template
);
// set up context. $context argument is optional and needed only if defaults need to be changed
$context = new FormattingContext();
$context->setThousandsSeparator(' ');
// set other formatting options in the context if needed
echo $formatter->formatMoney($result, $context); // outputs €480 741 910 794.12
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.