From d5e0517b12ca03c07c0d8c1c2131bf26fe034f20 Mon Sep 17 00:00:00 2001 From: Erayd Date: Tue, 21 Mar 2017 12:44:41 +1300 Subject: [PATCH] Enable FILTER_FLAG_EMAIL_UNICODE for email format if present --- src/JsonSchema/Constraints/FormatConstraint.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/JsonSchema/Constraints/FormatConstraint.php b/src/JsonSchema/Constraints/FormatConstraint.php index 87c1dc57..f03e6520 100644 --- a/src/JsonSchema/Constraints/FormatConstraint.php +++ b/src/JsonSchema/Constraints/FormatConstraint.php @@ -124,7 +124,12 @@ public function check(&$element, $schema = null, JsonPointer $path = null, $i = break; case 'email': - if (null === filter_var($element, FILTER_VALIDATE_EMAIL, FILTER_NULL_ON_FAILURE)) { + $filterFlags = FILTER_NULL_ON_FAILURE; + if (defined('FILTER_FLAG_EMAIL_UNICODE')) { + // Only available from PHP >= 7.1.0, so ignore it for coverage checks + $filterFlags |= constant('FILTER_FLAG_EMAIL_UNICODE'); // @codeCoverageIgnore + } + if (null === filter_var($element, FILTER_VALIDATE_EMAIL, $filterFlags)) { $this->addError(ConstraintError::FORMAT_EMAIL(), $path, array('format' => $schema->format)); } break;