src/NumberTransformer/EnglishNumberTransformer.php
<?php
namespace NumberToWords\NumberTransformer;
use NumberToWords\Language\English\EnglishDictionary;
use NumberToWords\Language\English\EnglishExponentGetter;
use NumberToWords\Language\English\EnglishTripletTransformer;
use NumberToWords\Service\NumberToTripletsConverter;
class EnglishNumberTransformer implements NumberTransformer
{
public function toWords(int $number): string
{
$dictionary = new EnglishDictionary();
$numberToTripletsConverter = new NumberToTripletsConverter();
$tripletTransformer = new EnglishTripletTransformer($dictionary);
$exponentInflector = new EnglishExponentGetter();
$numberTransformer = (new NumberTransformerBuilder())
->withDictionary($dictionary)
->withWordsSeparatedBy(' ')
->transformNumbersBySplittingIntoTriplets($numberToTripletsConverter, $tripletTransformer)
->useRegularExponents($exponentInflector)
->build();
return $numberTransformer->toWords($number);
}
}