Erebot  latest
A modular IRC bot for PHP 5.3+
CurrencyVariable.php
1 <?php
2 /*
3  This file is part of Erebot, a modular IRC bot written in PHP.
4 
5  Copyright © 2010 François Poirotte
6 
7  Erebot is free software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  Erebot is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with Erebot. If not, see <http://www.gnu.org/licenses/>.
19 */
20 
21 namespace Erebot\Styling\Variables;
22 
27 class CurrencyVariable implements \Erebot\Styling\Variables\CurrencyInterface
28 {
30  protected $value;
31 
33  protected $currency;
34 
49  public function __construct($value, $currency = null)
50  {
51  $this->value = $value;
52  $this->currency = $currency;
53  }
54 
64  {
65  $locale = $translator->getLocale(\Erebot\IntlInterface::LC_MONETARY);
66  $formatter = new \NumberFormatter($locale, \NumberFormatter::CURRENCY);
67  $currency = ($this->currency !== null)
68  ? $this->currency
69  : $formatter->getSymbol(\NumberFormatter::INTL_CURRENCY_SYMBOL);
70  return (string) $formatter->formatCurrency($this->value, $currency);
71  }
72 
73  public function getValue()
74  {
75  return $this->value;
76  }
77 
78  public function getCurrency()
79  {
80  return $this->currency;
81  }
82 }
Interface to provide internationalization.
Definition: CLI.php:21
render(\Erebot\IntlInterface $translator)
A class used to format currencies.
const LC_MONETARY
Monetary formats.
$currency
Currency the amount is expressed in.
$translator
Translator to use to improve rendering.
Definition: Styling.php:116