From 2740bd1a9d38fb23cd66b5e0284c519e99531d82 Mon Sep 17 00:00:00 2001 From: Maxime Steinhausser Date: Fri, 7 Jun 2019 09:42:04 +0200 Subject: [PATCH] [Serializer] Fix DataUriNormalizer deprecation (MIME type guesser is optional) --- .../Serializer/Normalizer/DataUriNormalizer.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/Serializer/Normalizer/DataUriNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/DataUriNormalizer.php index 111f3f2ff4..a6ca7223b0 100644 --- a/src/Symfony/Component/Serializer/Normalizer/DataUriNormalizer.php +++ b/src/Symfony/Component/Serializer/Normalizer/DataUriNormalizer.php @@ -39,7 +39,7 @@ class DataUriNormalizer implements NormalizerInterface, DenormalizerInterface, C private $mimeTypeGuesser; /** - * @param MimeTypeGuesserInterface + * @param MimeTypeGuesserInterface|null $mimeTypeGuesser */ public function __construct($mimeTypeGuesser = null) { @@ -48,8 +48,8 @@ class DataUriNormalizer implements NormalizerInterface, DenormalizerInterface, C } elseif (null === $mimeTypeGuesser) { if (class_exists(MimeTypes::class)) { $mimeTypeGuesser = MimeTypes::getDefault(); - } else { - @trigger_error(sprintf('Passing null to "%s()" without symfony/mime installed is deprecated since Symfony 4.3, install symfony/mime.', __METHOD__), E_USER_DEPRECATED); + } elseif (class_exists(MimeTypeGuesser::class)) { + @trigger_error(sprintf('Passing null to "%s()" to use a default MIME type guesser without Symfony Mime installed is deprecated since Symfony 4.3. Try running "composer require symfony/mime".', __METHOD__), E_USER_DEPRECATED); $mimeTypeGuesser = MimeTypeGuesser::getInstance(); } } elseif (!$mimeTypeGuesser instanceof MimeTypes) { @@ -156,7 +156,9 @@ class DataUriNormalizer implements NormalizerInterface, DenormalizerInterface, C if ($this->mimeTypeGuesser instanceof DeprecatedMimeTypeGuesserInterface && $mimeType = $this->mimeTypeGuesser->guess($object->getPathname())) { return $mimeType; - } elseif ($this->mimeTypeGuesser && $mimeType = $this->mimeTypeGuesser->guessMimeType($object->getPathname())) { + } + + if ($this->mimeTypeGuesser && $mimeType = $this->mimeTypeGuesser->guessMimeType($object->getPathname())) { return $mimeType; }