Copper: An API extension for NumberFormatter.
Via Composer run the following:
$ composer require pwweb/copper
This package makes it easy to format numbers using PHP NumberFormatter
. In essence it wraps things up in a simple to use API.
To get started you will need to create a new instance:
<?php
...
Copper\Copper::create(?float $value = null, ?int $style = null, ?string $locale = null);
i.e.:
<?php
...
$formatter = Copper\Copper::create(-1234.56, \NumberFormatter::DECIMAL, 'en-GB');
If you don't provide a $style
it will default to NumberFormatter::DECIMAL
. If you don't provide the $locale
it will default to the value of the Laravel application.
Then with this you can format in any of the following ways:
Format | Code | Output |
---|---|---|
Currency | $value->currency('GBP') |
-£1,234.56 |
Decimal | $value->decimal(2) |
-1,234.56 |
Percentage | $value->percentage() |
-123,456% |
Scientific | $value->scientific() |
-1.23456E3 |
Accounting | $value->accounting('GBP') |
(£1,234.56) |
SpellOut | $value->spellOut() |
minus one thousand two hundred thirty-four point five six |
Since the create()
function returns an instance of Copper
, you can chain the methods together i.e. Copper\Copper::create(-1234.56)->currency('EUR')
leads to -€1,234.56
.
This means that it's particularly helpful in Blade templates:
{{ Copper\Copper::create($order->value)->currency('USD') }}
In addition to the base functions there are a few setters and getters:
Function | Result |
---|---|
setStyle(int) |
Allows for altering the style value. |
getstyle(): int |
Returns the style number currently defined. |
setLocale(string) |
Allows for changing/specifying the locale within the code i.e. {{ Copper\Copper::create(-1234.56)->setLocale('de-DE')->currency('EUR') }} would return -1.234,56 € . |
Please see the changelog for more information on what has changed recently.
Please see contributing.md for details and a todolist.
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Copyright © pw-websolutions.com. Please see the license file for more information.
˜