Closed
Description
Description
Serializer instantiation sometimes takes long time (30ms):
Simplest workaround for now is create proxy for MimeTypeGuesser.
Example
serializer.normalizer.mime_type_guesser_proxy:
class: Application\CommonBundle\Utils\MimeTypeGuesserProxy
serializer.normalizer.data_uri:
class: Symfony\Component\Serializer\Normalizer\DataUriNormalizer
arguments: ['@serializer.normalizer.mime_type_guesser_proxy']
tags:
- { name: serializer.normalizer, priority: -920 }
final class MimeTypeGuesserProxy implements MimeTypeGuesserInterface
{
public function guess($path)
{
$mimeTypeGuesser = MimeTypeGuesser::getInstance();
return $mimeTypeGuesser->guess($path);
}
}
https://github.com/symfony/symfony/blob/v4.0.9/src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.xml#L33
https://github.com/symfony/symfony/blob/v4.0.9/src/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php#L83
https://github.com/symfony/symfony/blob/v4.0.9/src/Symfony/Component/HttpFoundation/File/MimeType/FileBinaryMimeTypeGuesser.php#L57