%PDF- %PDF-
| Direktori : /var/www/pjc/vendor/cknow/laravel-money/src/Formatters/ |
| Current File : /var/www/pjc/vendor/cknow/laravel-money/src/Formatters/CurrencySymbolMoneyFormatter.php |
<?php
namespace Cknow\Money\Formatters;
use Cknow\Money\Money;
use Money\Currencies;
use Money\Formatter\DecimalMoneyFormatter;
use Money\MoneyFormatter;
use NumberFormatter;
class CurrencySymbolMoneyFormatter implements MoneyFormatter
{
/**
* @var bool
*/
protected $right;
/**
* @var string
*/
protected $locale;
/**
* @var \Money\Currencies
*/
protected $currencies;
/**
* Instantiate the class.
*
* @param bool $right
* @param string|null $locale
* @param \Money\Currencies|null $currencies
*/
public function __construct($right = false, $locale = null, Currencies $currencies = null)
{
$this->right = $right;
$this->locale = $locale ?: Money::getLocale();
$this->currencies = $currencies ?: Money::getCurrencies();
}
/**
* Formats a Money object as string.
*
* @param \Money\Money $moeny
* @return string
*/
public function format(\Money\Money $money): string
{
$numberFormatter = new NumberFormatter($this->locale, NumberFormatter::CURRENCY);
$symbol = $numberFormatter->getSymbol(NumberFormatter::CURRENCY_SYMBOL);
$formatter = new DecimalMoneyFormatter($this->currencies);
$value = $formatter->format($money);
return $this->right ? $value.$symbol : $symbol.$value;
}
}