commerce-8.x-2.8/modules/price/src/CurrencyFormatter.php
modules/price/src/CurrencyFormatter.php
<?php namespace Drupal\commerce_price; use CommerceGuys\Intl\Currency\CurrencyRepositoryInterface; use CommerceGuys\Intl\Formatter\CurrencyFormatter as ExternalCurrencyFormatter; use CommerceGuys\Intl\NumberFormat\NumberFormatRepositoryInterface; use Drupal\commerce\CurrentLocaleInterface; /** * Extends the commerceguys/intl CurrencyFormatter to provide better defaults. * * @see \CommerceGuys\Intl\Formatter\CurrencyFormatterInterface */ class CurrencyFormatter extends ExternalCurrencyFormatter { /** * Constructs a new CurrencyFormatter object. * * @param \CommerceGuys\Intl\NumberFormat\NumberFormatRepositoryInterface $number_format_repository * The number format repository. * @param \CommerceGuys\Intl\Currency\CurrencyRepositoryInterface $currency_repository * The currency repository. * @param \Drupal\commerce\CurrentLocaleInterface $current_locale * The current locale. */ public function __construct(NumberFormatRepositoryInterface $number_format_repository, CurrencyRepositoryInterface $currency_repository, CurrentLocaleInterface $current_locale) { $default_options = [ 'locale' => $current_locale->getLocale()->getLocaleCode(), // Show prices as-is. All digits (storage max is 6), non-rounded. 'maximum_fraction_digits' => 6, 'rounding_mode' => 'none', ]; parent::__construct($number_format_repository, $currency_repository, $default_options); } }