Handling currency by locale
The technique for handling currency is similar to that for numbers. We will even use the same NumberFormatter
class! There is one major difference, however, and it is a show stopper: in order to properly format currency, you will need to have on hand the currency code.
How to do it...
The first order of business is to have the currency codes available in some format. One possibility is to simply add the currency code as an
Application\I18n\Locale
class constructor argument:const FALLBACK_CURRENCY = 'GBP'; protected $currencyCode; public function __construct($localeString = NULL, $currencyCode = NULL) { // add this to the existing code: $this->currencyCode = $currencyCode ?? self::FALLBACK_CURRENCY; }
Note
This approach, although obviously solid and workable, tends to fall into the category called halfway measures or the easy way out! This approach would also tend to eliminate full automation as the currency code is not available from the HTTP header. As you...