File tree Expand file tree Collapse file tree 2 files changed +11
-8
lines changed
src/MessageFormat/Functions Expand file tree Collapse file tree 2 files changed +11
-8
lines changed Original file line number Diff line number Diff line change 22
33namespace Tempest \Intl \MessageFormat \Functions ;
44
5- use DateTime ;
6- use Tempest \DateTime \DateTime as TempestDateTime ;
5+ use Tempest \DateTime \DateTime ;
76use Tempest \Intl \MessageFormat \Formatter \FormattedValue ;
87use Tempest \Intl \MessageFormat \FormattingFunction ;
98use Tempest \Support \Arr ;
@@ -14,12 +13,11 @@ final class DateTimeFunction implements FormattingFunction
1413
1514 public function format (mixed $ value , array $ parameters ): FormattedValue
1615 {
17- if (class_exists (TempestDateTime::class)) {
18- $ datetime = TempestDateTime::parse ($ value );
19- } else {
20- $ datetime = new DateTime ($ value );
16+ if (! class_exists (DateTime::class)) {
17+ throw new \RuntimeException ('`tempest/datetime` is required to use the `datetime` function. ' );
2118 }
2219
20+ $ datetime = DateTime::parse ($ value );
2321 $ formatted = $ datetime ->format (Arr \get_by_key ($ parameters , 'pattern ' ));
2422
2523 return new FormattedValue ($ value , $ formatted );
Original file line number Diff line number Diff line change 44
55use PHPUnit \Framework \Attributes \TestWith ;
66use PHPUnit \Framework \TestCase ;
7+ use Tempest \DateTime \DateTime ;
78use Tempest \Intl \IntlConfig ;
89use Tempest \Intl \Locale ;
910use Tempest \Intl \MessageFormat \Formatter \FormattedValue ;
@@ -51,13 +52,17 @@ public function test_placeholder_variable(): void
5152
5253 public function test_format_datetime_function_and_parameters (): void
5354 {
55+ if (! class_exists (DateTime::class)) {
56+ $ this ->markTestSkipped ('`tempest/datetime` is needed for this test. ' );
57+ }
58+
5459 $ formatter = new MessageFormatter ([new DateTimeFunction ()]);
5560
5661 $ value = $ formatter ->format (<<<'TXT'
57- Today's year is {$today :datetime pattern=|Y |}.
62+ Today is {$today :datetime pattern=|yyyy/MM/dd |}.
5863 TXT, today: '2024-01-01 ' );
5964
60- $ this ->assertSame ('Today \' s year is 2024. ' , $ value );
65+ $ this ->assertSame ('Today is 2024/01/01 . ' , $ value );
6166 }
6267
6368 public function test_format_number_function (): void
You can’t perform that action at this time.
0 commit comments