Se você precisa das funcionalidades do NumberHelper fora da View,
use a classe Number
namespace App\Controller;
use Cake\I18n\Number;
class UsersController extends AppController
{
    public function initialize(): void
    {
        parent::initialize();
        $this->loadComponent('Auth');
    }
    public function afterLogin()
    {
        $storageUsed = $this->Auth->user('storage_used');
        if ($storageUsed > 5000000) {
            // Notify users of quota
            $this->Flash->success(__('You are using {0} storage', Number::toReadableSize($storageUsed)));
        }
    }
}
Todas essas funções retornam o número formatado; eles não são impressas automaticamente na visualização de saída.
Este método é usado para exibir um número em formatos monetários comuns (EUR, GBP, USD), com base no código de moeda ISO 4217 de 3 letras. O uso em uma view se parece com:
// Called as NumberHelper
echo $this->Number->currency($value, $currency);
// Called as Number
echo Number::currency($value, $currency);
O primeiro parâmetro, $value, deve ser um número de ponto flutuante
que representa a quantidade de dinheiro que você está expressando.
O segundo parâmetro é uma string usada para escolher um esquema de
formatação de monetária predefinida:
$ moeda | 1234.56, formatação pelo tipo monetário  | 
|
|---|---|
EUR  | 
€1.234,56  | 
GBP  | 
£1,234.56  | 
USD  | 
$1,234.56  | 
O terceiro parâmetro é um conjunto de opções para definir melhor a saída. As seguintes opções estão disponíveis:
Opção  | 
Descrição  | 
|---|---|
before  | 
Texto a ser exibido antes do número renderizado.  | 
after  | 
Texto a ser exibido após o número renderizado.  | 
zero  | 
O texto a ser usado para valores zero; pode ser uma string ou um número. ou seja, 0, “Grátis!”.  | 
places  | 
Número de casas decimais a serem usadas, ou seja, 2  | 
precision  | 
Número máximo de casas decimais a serem usadas, ou seja, 2  | 
locale  | 
O nome do local a ser usado para formatar o número, ou seja. “Fr_FR”.  | 
fractionSymbol  | 
String a ser usada para números fracionários, ou seja, “centavos”.  | 
fractionPosition  | 
Ou “antes” ou “depois” para colocar o símbolo de fração.  | 
pattern  | 
Um padrão de número ICU a ser usado para formatar o número, ou seja. #, ###. 00  | 
useIntlCode  | 
Defina como   | 
Se de $currency for null, a moeda padrão será retornada em
Cake\I18n\Number::defaultCurrency(). Para formatar moedas em um
formato de contabilidade, você deve definir o formato da moeda:
Number::setDefaultCurrencyFormat(Number::FORMAT_CURRENCY_ACCOUNTING);
Atribui a moeda padrão. Isso elimina a necessidade de sempre passar a moeda
para Cake\I18n\Number::currency() e alterar todas as saídas de
moeda definindo outro padrão. Se $currency atribuído o valor null,
ele apagará o valor armazenado no momento.
Obtem a moeda padrão. Se a moeda padrão foi definida anteriormente usando
setDefaultCurrency(), então esse valor será retornado. Por padrão, ele irá
retornar o valor intl.default_locale do ini se estiver atribuído e 'en_US' se não estiver.
Este método exibe um número com a quantidade especificada de precisão (casas decimais). Ele será arredondado para manter o nível de precisão definido.
// Called as NumberHelper
echo $this->Number->precision(456.91873645, 2);
// Outputs
456.92
// Called as Number
echo Number::precision(456.91873645, 2);
Opção | Descrição  | 
|
|---|---|
multiply  | 
Booleano para indicar se o valor deve ser multiplicado por 100. Útil para porcentagens decimais.  | 
Da mesma forma Cake\I18n\Number::precision(), ste método formata um
número de acordo com a precisão fornecida (onde os números são arredondados para
atender à precisão fornecida). Este método também expressa o número como uma
porcentagem e anexa a saída com um sinal de porcentagem.
// Called as NumberHelper. Output: 45.69%
echo $this->Number->toPercentage(45.691873645);
// Called as Number. Output: 45.69%
echo Number::toPercentage(45.691873645);
// Called with multiply. Output: 45.7%
echo Number::toPercentage(0.45691, 1, [
    'multiply' => true
]);
Este método formata o tamanho dos dados em formatos legíveis por humanos. Ele fornece uma forma de atalho para converter bytes em KB, MB, GB e TB. O tamanho é exibido com um nível de precisão de dois dígitos, de acordo com o tamanho dos dados fornecidos (ou seja, tamanhos maiores são expressos em termos maiores)
// Called as NumberHelper
echo $this->Number->toReadableSize(0); // 0 Byte
echo $this->Number->toReadableSize(1024); // 1 KB
echo $this->Number->toReadableSize(1321205.76); // 1.26 MB
echo $this->Number->toReadableSize(5368709120); // 5 GB
// Called as Number
echo Number::toReadableSize(0); // 0 Byte
echo Number::toReadableSize(1024); // 1 KB
echo Number::toReadableSize(1321205.76); // 1.26 MB
echo Number::toReadableSize(5368709120); // 5 GB
Este método fornece muito mais controle sobre a formatação de números para uso em suas visualizações (e é usado como o método principal pela maioria dos outros métodos NumberHelper). Usar este método pode ser parecido com:
// Called as NumberHelper
$this->Number->format($value, $options);
// Called as Number
Number::format($value, $options);
O parâmetro $value é o número que você está planejando formatar para
saída. Sem o formatting for output. Sem o $options, o número
1236.334 produzirá a saída 1,236.  Observe que a precisão padrão
é zero casas decimais.
O parâmetro $options  é onde reside a verdadeira magia desse método.
Se você passar um número inteiro, isso se tornará a quantidade de precisão ou casas para a função.
Se você passar uma matriz associada, você pode usar as seguintes chaves:
Opção | Descrição  | 
|
|---|---|
places  | 
Número de casas decimais a serem usadas, ou seja, 2  | 
precision  | 
Número máximo de casas decimais a serem usadas, ou seja, 2  | 
pattern  | 
Um padrão de número ICU a ser usado para formatar o número, ou seja. #, ###. 00  | 
locale  | 
O nome do local a ser usado para formatar o número, ou seja. “Fr_FR”.  | 
before  | 
Texto a ser exibido antes do número renderizado.  | 
after  | 
Texto a ser exibido após o número renderizado.  | 
Exemplo:
// Called as NumberHelper
echo $this->Number->format('123456.7890', [
    'places' => 2,
    'before' => '¥ ',
    'after' => ' !'
]);
// Output '¥ 123,456.79 !'
echo $this->Number->format('123456.7890', [
    'locale' => 'fr_FR'
]);
// Output '123 456,79 !'
// Called as Number
echo Number::format('123456.7890', [
    'places' => 2,
    'before' => '¥ ',
    'after' => ' !'
]);
// Output '¥ 123,456.79 !'
echo Number::format('123456.7890', [
    'locale' => 'fr_FR'
]);
// Output '123 456,79 !'
Este método irá gerar um número ordinal.
Exemplos:
echo Number::ordinal(1);
// Output '1st'
echo Number::ordinal(2);
// Output '2nd'
echo Number::ordinal(2, [
    'locale' => 'fr_FR'
]);
// Output '2e'
echo Number::ordinal(410);
// Output '410th'
Este método exibe diferenças de valor como um número assinado:
// Called as NumberHelper
$this->Number->formatDelta($value, $options);
// Called as Number
Number::formatDelta($value, $options);
O parâmetro $value é o número que você está planejando formatar
para saída. Sem o $options ,  1236.334 produziria como saída 1,236.
Observe que a precisão padrão é zero casas decimais.
O parâmetro $options  usa as mesmas chaves que Number::format():
Opção | Descrição  | 
|
|---|---|
places  | 
Número de casas decimais a serem usadas, ou seja, 2  | 
precision  | 
Número máximo de casas decimais a serem usadas, ou seja, 2  | 
locale  | 
O nome do local a ser usado para formatar o número, ou seja. “Fr_FR”.  | 
before  | 
Texto a ser exibido antes do número renderizado.  | 
after  | 
Texto a ser exibido após o número renderizado.  | 
Exemplo:
// Called as NumberHelper
echo $this->Number->formatDelta('123456.7890', [
    'places' => 2,
    'before' => '[',
    'after' => ']'
]);
// Output '[+123,456.79]'
// Called as Number
echo Number::formatDelta('123456.7890', [
    'places' => 2,
    'before' => '[',
    'after' => ']'
]);
// Output '[+123,456.79]'
Este método permite configurar padrões do formatador que persistem nas chamadas para vários métodos.
Exemplo:
Number::config('en_IN', \NumberFormatter::CURRENCY, [
    'pattern' => '#,##,##0'
]);