Skip to content

Commit 9d0114d

Browse files
committed
Improve units fluent interface
1 parent af70828 commit 9d0114d

File tree

11 files changed

+605
-229
lines changed

11 files changed

+605
-229
lines changed

MIGRATION.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,29 @@ None
6262

6363
- Removed the `localized()` method on entities that don't naturally require access to the
6464
repository: `NumberFormatter` and `ListFormatter`. You can use
65-
`$repository->locales['fr']->localize($formatter)` to get a localized formatter, the
65+
`$repository->locales['fr']->localize($formatter)` to get a localized formatter, or the
6666
`number_formatter` and `list_formater` properties of the `Locale` object.
6767

68+
- The fluent interface of units is now more on par with the rest of the API.
69+
70+
```php
71+
<?php
72+
73+
echo $units->duration_hour(23);
74+
echo $units->duration_hour(23, $units::LENGTH_SHORT);
75+
echo $units->volume_liter->per_unit(12.345, $units->duration_hour);
76+
echo $units->volume_liter->per_unit(12.345, $units->duration_hour, $units::LENGTH_SHORT);
77+
```
78+
79+
```php
80+
<?php
81+
82+
echo $units->duration_hour(23);
83+
echo $units->duration_hour(23)->as_short;
84+
echo $units->volume_liter(12.345)->per($units->duration_hour);
85+
echo $units->volume_liter(12.345)->per($units->duration_hour)->as_short;
86+
```
87+
6888
### Deprecated Features
6989

7090
- The localized currency formatter no longer supports a `$symbols` parameter. If you need to

README.md

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
The __CLDR__ package provides means to internationalize your application by leveraging the data and
99
conventions defined by the [Unicode Common Locale Data Repository](http://cldr.unicode.org/) (CLDR).
10-
It provides many useful locale information and data (such as locale names for territories,
10+
It offers many helpful locale information and data (such as locale names for territories,
1111
languages, days…) as well as formatters for numbers, currencies, dates and times, units, sequences,
1212
lists…
1313

@@ -62,19 +62,19 @@ echo $fr_datetime->as_short; // 04/11/2013 20:21
6262

6363
# You can format units
6464
$units = $repository->locales['en']->units;
65-
$units->duration_hour->name; // hours
66-
$units->duration_hour->short_name; // h
67-
$units->duration_hour(1); // 1 hour
68-
$units->duration_hour(23); // 23 hours
69-
$units->duration_hour(23, $units::LENGTH_SHORT); // 23 hr
70-
$units->duration_hour(23, $units::LENGTH_NARROW); // 23h
65+
echo $units->duration_hour->name; // hours
66+
echo $units->duration_hour->short_name; // h
67+
echo $units->duration_hour(1); // 1 hour
68+
echo $units->duration_hour(23); // 23 hours
69+
echo $units->duration_hour(23)->as_short; // 23 hr
70+
echo $units->duration_hour(23)->as_narrow; // 23h
7171

7272
# You can format a unit per another unit
73-
$units->volume_liter->per_unit(12.345, $units->duration_hour);
73+
echo $units->volume_liter(12.345)->per($units->duration_hour);
7474
// 12.345 liters per hour
75-
$units->volume_liter->per_unit(12.345, $units->duration_hour, $units::LENGTH_SHORT);
75+
echo $units->volume_liter(12.345)->per($units->duration_hour)->as_short;
7676
// 12.345 L/h
77-
$units->volume_liter->per_unit(12.345, $units->duration_hour, $units::LENGTH_NARROW);
77+
echo $units->volume_liter(12.345)->per($units->duration_hour)->as_narrow;
7878
// 12.345L/h
7979

8080
# You can format sequences of units
@@ -694,15 +694,15 @@ units:
694694
/* @var $repository \ICanBoogie\CLDR\Repository */
695695

696696
$units = $repository->locales['en']->units;
697-
$units->duration_hour->name; // hours
698-
$units->duration_hour->short_name; // h
699-
$units->duration_hour(1); // 1 hour
700-
$units->duration_hour(23); // 23 hours
701-
$units->duration_hour(23, $units::LENGTH_SHORT); // 23 hr
702-
$units->duration_hour(23, $units::LENGTH_NARROW); // 23h
697+
echo $units->duration_hour->name; // hours
698+
echo $units->duration_hour->short_name; // h
699+
echo $units->duration_hour(1); // 1 hour
700+
echo $units->duration_hour(23); // 23 hours
701+
echo $units->duration_hour(23)->as_short; // 23 hr
702+
echo $units->duration_hour(23)->as_narrow; // 23h
703703
```
704704

705-
[Many units are available](http://unicode.org/reports/tr35/tr35-general.html#Unit_Elements).
705+
[Many units are available](https://www.unicode.org/reports/tr35/tr35-57/tr35-general.html#Unit_Elements).
706706

707707
### Per unit
708708

@@ -716,14 +716,13 @@ be used in preference.
716716
/* @var $repository \ICanBoogie\CLDR\Repository */
717717

718718
$units = $repository->locales['en']->units;
719-
$units->volume_liter->per_unit(12.345, $units->duration_hour);
720-
// 12.345 liters per hour
721-
$units->volume_liter->per_unit(12.345, $units->duration_hour, $units::LENGTH_SHORT);
722-
// 12.345 Lph
723-
$units->volume_liter->per_unit(12.345, $units->duration_hour, $units::LENGTH_NARROW);
724-
// 12.345l/h
719+
echo $units->volume_liter(12.345)->per($units->duration_hour); // 12.345 liters per hour
720+
echo $units->volume_liter(12.345)->per($units->duration_hour)->as_short; // 12.345 Lph
721+
echo $units->volume_liter(12.345)->per($units->duration_hour)->as_narrow; // 12.345l/h
725722
```
726723

724+
725+
727726
### Units in composed sequence
728727

729728
Units may be used in composed sequences, such as **5° 30m** for 5 degrees 30 minutes, or **3 ft, 2

0 commit comments

Comments
 (0)