dev-master
9999999-devDisplay / Format prices in PHP
The Requires
- php >=5.4
- symfony/options-resolver ^3.0
The Development Requires
money format price display
Wallogit.com
2017 © Pedro Peláez
Display / Format prices in PHP
Display prices in PHP., (*1)
PHP 5.4+, (*2)
Defaut settings are designed for Europeans, but you can change it, see Default options chapter., (*3)
use Johndodev\PriceFormatter;
// create an instance (see __construct chapter)
$priceFormatter = new PriceFormatter();
echo $priceFormatter->format(4);
// display "4 €"
echo $priceFormatter->format(4, 'USD');
// display 4 $
echo $priceFormatter->format(4, '$');
// display 4 $
echo $priceFormatter->format(4, 'USD')->symbolBefore()->symbolSep('');
// display $4
All methods are chainable:, (*4)
echo $priceFormatter->format($numberToFormat, $currency = null)
// remove trailing zeros if necessary: 5.00 output 5 but 5.50 output 5.50)
->autoTrailingZeros(true)
// set the symbol separator
->symbolSep(' ')
// set the decimals separator
->decSep('.')
// set the maximum number of decimals to show
->decimals(2)
// put the symbol after the value
->symbolAfter()
// or before
->symbolBefore()
// but you can define the position with a variable
->symbolPosition(PriceFormatter::SYMBOL_POSITION_AFTER)
// set the thousands separator
->thousandsSep(',')
// remove trailing zeros (decimals), e.g.: 5.00 will output 5, 5.50 will output 5.5
->trimTrailingZeros(true)
// unbreakable spaces: replace " " by " "
->unbreakable(true);
You can create as many instances (aka services) as you want with their own defaut options (the next chapter is Default options), (*5)
PriceFormatter::__construct($options = [])
$euroFormatter = new PriceFormatter(['currency' => 'EUR']);
$euroFormatter = new PriceFormatter(['currency' => '€']);
$usdFormatter = new PriceFormatter([
'currency' => 'USD',
'symbolPosition' => PriceFormatter::SYMBOL_POSITION_BEFORE,
]);
You can set all thoses settings per instance, below are default values:, (*6)
$priceFormatter = new PriceFormatter([
'currency' => 'EUR',
'decimals' => 2,
'decSep' => '.',
'thousandsSep' => '',
'symbolPosition' => PriceFormatter::SYMBOL_POSITION_AFTER,
'symbolSep' => ' ',
'unbreakable' => true,
'trimTrailingZeros' => false,
'autoTrailingZeros' => true,
]);
Example:, (*7)
// no spaces between currency and value
$priceFormatter = new PriceFormatter(['symbolSep' => '']);
// display 5€
echo $priceFormatter->format(5);
// but all options can be overriden for one format()
echo $priceFormatter->format(5)->symbolSep(' ');
// display 5 €
echo $priceFormatter->format(5);
// then display 5€ again
You can use these code AUD $, CAD $, CHF CHF, CNY ¥, EUR €, GBP £, HKD $, JPY ¥, NOK kr, SEK kr, USD $., (*8)
If you want to format an unsupported currency, use the Symbol (http://www.xe.com/symbols.php):, (*9)
// 5 ฿ echo $priceFormatter->format(5, '฿');
> composer install > php vendor/bin/phpunit --testsuite PriceFormatter
Display / Format prices in PHP
money format price display