edit this page Formatting

With the robust way formatting works, the currency symbol or any text can place at the beginning or end of the format.

Example format for USD:

$1,0.00

The first character , in the example above represents the thousands separator, the second one represents the decimals separator, digits after the second separator represent the number of decimals to show.

If a currency doesn't have a thousands separator, an explanation mark (!) is used as an override.

For example a value of 2030.52 with the format $ 1!0.00 would output to $ 2030.52.

Custom Formatters

The reason custom formatters were added because not all PHP installs have Internationalization Functions installed or activated. Making the formatting custom gives the ability to pick what system we want to do the formatting.

Formatters are stored in the Currency's config file config/currency.php. Simply update the formatter with the name of your custom formatter and add it to the formatters specific configuration section with the class value as the custom classname.

Example formatter

<?php

namespace App\Currency\Formatters;

use Torann\Currency\Contracts\FormatterInterface;

class FooBar implements FormatterInterface
{
    /**
     * Config options.
     *
     * @var array
     */
    protected $config;

    /**
     * Create a new instance.
     */
    public function __construct(array $config = [])
    {
        $this->config = $config;
    }

    /**
     * {@inheritdoc}
     */
    public function format($value, $code = null)
    {
        return $value . ($this->config['append_code'] === true ? $code : '');
    }
}

In the config file


    'formatter' => 'foo_bar',

    'formatters' => [

        ...

        'foo_bar' => [
            'class' => \App\Currency\Formatters\FooBar::class,
            'append_code' => true,
        ],

    ],