%PDF- %PDF-
Direktori : /home/graphicd/public_html/vebto/vendor/moneyphp/money/src/Formatter/ |
Current File : /home/graphicd/public_html/vebto/vendor/moneyphp/money/src/Formatter/IntlMoneyFormatter.php |
<?php namespace Money\Formatter; use Money\Currencies; use Money\Money; use Money\MoneyFormatter; /** * Formats a Money object using intl extension. * * @author Frederik Bosch <f.bosch@genkgo.nl> */ final class IntlMoneyFormatter implements MoneyFormatter { /** * @var \NumberFormatter */ private $formatter; /** * @var Currencies */ private $currencies; /** * @param \NumberFormatter $formatter * @param Currencies $currencies */ public function __construct(\NumberFormatter $formatter, Currencies $currencies) { $this->formatter = $formatter; $this->currencies = $currencies; } /** * {@inheritdoc} */ public function format(Money $money) { $valueBase = $money->getAmount(); $negative = false; if ($valueBase[0] === '-') { $negative = true; $valueBase = substr($valueBase, 1); } $subunit = $this->currencies->subunitFor($money->getCurrency()); $valueLength = strlen($valueBase); if ($valueLength > $subunit) { $formatted = substr($valueBase, 0, $valueLength - $subunit); $decimalDigits = substr($valueBase, $valueLength - $subunit); if (strlen($decimalDigits) > 0) { $formatted .= '.'.$decimalDigits; } } else { $formatted = '0.'.str_pad('', $subunit - $valueLength, '0').$valueBase; } if ($negative === true) { $formatted = '-'.$formatted; } return $this->formatter->formatCurrency($formatted, $money->getCurrency()->getCode()); } }