PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.6
Booking for Appointments and Events Calendar – Amelia v2.4.6
2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / vendor / moneyphp / money / src / Formatter / IntlLocalizedDecimalFormatter.php
ameliabooking / vendor / moneyphp / money / src / Formatter Last commit date
AggregateMoneyFormatter.php 6 years ago BitcoinMoneyFormatter.php 2 years ago DecimalMoneyFormatter.php 2 years ago IntlLocalizedDecimalFormatter.php 2 years ago IntlMoneyFormatter.php 2 years ago
IntlLocalizedDecimalFormatter.php
66 lines
1 <?php
2
3 namespace Money\Formatter;
4
5 use Money\Currencies;
6 use Money\Money;
7 use Money\MoneyFormatter;
8
9 /**
10 * Formats a Money object using intl extension.
11 *
12 * @author Frederik Bosch <f.bosch@genkgo.nl>
13 */
14 final class IntlLocalizedDecimalFormatter implements MoneyFormatter
15 {
16 /**
17 * @var \NumberFormatter
18 */
19 private $formatter;
20
21 /**
22 * @var Currencies
23 */
24 private $currencies;
25
26 public function __construct(\NumberFormatter $formatter, Currencies $currencies)
27 {
28 $this->formatter = $formatter;
29 $this->currencies = $currencies;
30 }
31
32 /**
33 * {@inheritdoc}
34 */
35 public function format(Money $money)
36 {
37 $valueBase = $money->getAmount();
38 $negative = false;
39
40 if ($valueBase[0] === '-') {
41 $negative = true;
42 $valueBase = substr($valueBase, 1);
43 }
44
45 $subunit = $this->currencies->subunitFor($money->getCurrency());
46 $valueLength = strlen($valueBase);
47
48 if ($valueLength > $subunit) {
49 $formatted = substr($valueBase, 0, $valueLength - $subunit);
50 $decimalDigits = substr($valueBase, $valueLength - $subunit);
51
52 if (strlen($decimalDigits) > 0) {
53 $formatted .= '.'.$decimalDigits;
54 }
55 } else {
56 $formatted = '0.'.str_pad('', $subunit - $valueLength, '0').$valueBase;
57 }
58
59 if ($negative === true) {
60 $formatted = '-'.$formatted;
61 }
62
63 return $this->formatter->format($formatted);
64 }
65 }
66