New Requirements
Requires PHP 7.1+
New features
None
Backward Incompatible Changes
-
Numbers symbols are now represented by a
Symbols
instance instead of an array. Methods using numeric symbols have been updated. The currency symbol is no longer added to the numeric symbols, it is now a separated parameter.<?php /* @var ICanBoogie\CLDR\CurrencyFormatter $formatter */ /* @var array $symbols */ $formatter->format($number, $pattern, $symbols);
<?php /* @var ICanBoogie\CLDR\CurrencyFormatter $formatter */ /* @var ICanBoogie\CLDR\Numbers\Symbols $symbols */ /* @var string $currencySymbol */ $formatter->format($number, $pattern, $symbols, $currencySymbol);
-
List patterns are now represented by a
ListPattern
instance instead of an array. Methods using a list pattern have been updated.<?php /* @var ICanBoogie\CLDR\ListFormatter $formatter */ /* @var array $list_pattern */ $formatter->format([ 1, 2, 3 ], list_pattern);
<?php /* @var ICanBoogie\CLDR\ListFormatter $formatter */ /* @var ICanBoogie\CLDR\Locale\ListPattern $list_pattern */ $formatter->format([ 1, 2, 3 ], list_pattern);
-
Removed
NumberPattern:$format
, it was never used. -
Removed the
localized()
method on entities that don't naturally require access to the repository:NumberFormatter
andListFormatter
. You can use$repository->locales['fr']->localize($formatter)
to get a localized formatter, or thenumber_formatter
andlist_formater
properties of theLocale
object. -
The fluent interface of units is now more on par with the rest of the API.
<?php echo $units->duration_hour(23); echo $units->duration_hour(23, $units::LENGTH_SHORT); echo $units->volume_liter->per_unit(12.345, $units->duration_hour); echo $units->volume_liter->per_unit(12.345, $units->duration_hour, $units::LENGTH_SHORT);
<?php echo $units->duration_hour(23); echo $units->duration_hour(23)->as_short; echo $units->volume_liter(12.345)->per($units->duration_hour); echo $units->volume_liter(12.345)->per($units->duration_hour)->as_short;
Deprecated Features
-
The localized currency formatter no longer supports a
$symbols
parameter. If you need to customize how a currency is formatted, create your ownSymbols
instance and use it with a non-localized formatter e.g.$repository->format_currency()
. -
The localized list formatter no longer accepts a list pattern or a type, only a type. If you need to customize how a list is formatted, create you own
ListPattern
instance and use it with a non-localized formatter e.g.$repository->format_list()
.
Other Changes
- Compatible with PHP 8.1+
- Targets CLDR v36
- Improved type annotations, including generics.