minor #38120 [Intl] promote warnings to value errors on PHP 8 (xabbuh)

This PR was merged into the 3.4 branch.

Discussion
----------

[Intl] promote warnings to value errors on PHP 8

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

Commits
-------

82d9d41d57 [Intl] promote warnings to value errors on PHP 8
This commit is contained in:
Christian Flothmann 2020-09-09 09:59:57 +02:00
commit 81b954b753
2 changed files with 21 additions and 3 deletions

View File

@ -357,6 +357,10 @@ class NumberFormatter
// The original NumberFormatter does not support this format type
if (self::TYPE_CURRENCY === $type) {
if (\PHP_VERSION_ID >= 80000) {
throw new \ValueError(sprintf('The format type must be a NumberFormatter::TYPE_* constant (%s given).', $type));
}
trigger_error(__METHOD__.'(): Unsupported format type '.$type, \E_USER_WARNING);
return false;
@ -513,6 +517,10 @@ class NumberFormatter
$type = (int) $type;
if (self::TYPE_DEFAULT === $type || self::TYPE_CURRENCY === $type) {
if (\PHP_VERSION_ID >= 80000) {
throw new \ValueError(sprintf('The format type must be a NumberFormatter::TYPE_* constant (%d given).', $type));
}
trigger_error(__METHOD__.'(): Unsupported format type '.$type, \E_USER_WARNING);
return false;

View File

@ -324,7 +324,9 @@ abstract class AbstractNumberFormatterTest extends TestCase
*/
public function testFormatTypeCurrency($formatter, $value)
{
if (method_exists($this, 'expectWarning')) {
if (\PHP_VERSION_ID >= 80000) {
$this->expectException(\ValueError::class);
} elseif (method_exists($this, 'expectWarning')) {
$this->expectWarning();
} else {
$this->expectException(Warning::class);
@ -338,6 +340,10 @@ abstract class AbstractNumberFormatterTest extends TestCase
*/
public function testFormatTypeCurrencyReturn($formatter, $value)
{
if (\PHP_VERSION_ID >= 80000) {
$this->expectException(\ValueError::class);
}
$this->assertFalse(@$formatter->format($value, NumberFormatter::TYPE_CURRENCY));
}
@ -709,7 +715,9 @@ abstract class AbstractNumberFormatterTest extends TestCase
public function testParseTypeDefault()
{
if (method_exists($this, 'expectWarning')) {
if (\PHP_VERSION_ID >= 80000) {
$this->expectException(\ValueError::class);
} elseif (method_exists($this, 'expectWarning')) {
$this->expectWarning();
} else {
$this->expectException(Warning::class);
@ -833,7 +841,9 @@ abstract class AbstractNumberFormatterTest extends TestCase
public function testParseTypeCurrency()
{
if (method_exists($this, 'expectWarning')) {
if (\PHP_VERSION_ID >= 80000) {
$this->expectException(\ValueError::class);
} elseif (method_exists($this, 'expectWarning')) {
$this->expectWarning();
} else {
$this->expectException(Warning::class);