[Form] Check if IntlDateFormatter constructor returned a valid object before using it
This commit is contained in:
parent
37931f4f1b
commit
ebf967de8f
@ -152,6 +152,8 @@ class DateTimeToLocalizedStringTransformer extends BaseDateTimeTransformer
|
||||
* Returns a preconfigured IntlDateFormatter instance
|
||||
*
|
||||
* @return \IntlDateFormatter
|
||||
*
|
||||
* @throws TransformationFailedException in case the date formatter can not be constructed.
|
||||
*/
|
||||
protected function getIntlDateFormatter()
|
||||
{
|
||||
@ -162,6 +164,12 @@ class DateTimeToLocalizedStringTransformer extends BaseDateTimeTransformer
|
||||
$pattern = $this->pattern;
|
||||
|
||||
$intlDateFormatter = new \IntlDateFormatter(\Locale::getDefault(), $dateFormat, $timeFormat, $timezone, $calendar, $pattern);
|
||||
|
||||
// new \intlDateFormatter may return null instead of false in case of failure, see https://bugs.php.net/bug.php?id=66323
|
||||
if (!$intlDateFormatter) {
|
||||
throw new TransformationFailedException(intl_get_error_message(), intl_get_error_code());
|
||||
}
|
||||
|
||||
$intlDateFormatter->setLenient(false);
|
||||
|
||||
return $intlDateFormatter;
|
||||
|
@ -77,6 +77,12 @@ class DateType extends AbstractType
|
||||
$calendar,
|
||||
$pattern
|
||||
);
|
||||
|
||||
// new \intlDateFormatter may return null instead of false in case of failure, see https://bugs.php.net/bug.php?id=66323
|
||||
if (!$formatter) {
|
||||
throw new InvalidOptionsException(intl_get_error_message(), intl_get_error_code());
|
||||
}
|
||||
|
||||
$formatter->setLenient(false);
|
||||
|
||||
if ('choice' === $options['widget']) {
|
||||
|
Reference in New Issue
Block a user