Skip to content

MimeTypeGuesser proxy. #27307

Closed
Closed
@damour

Description

@damour

Description
Serializer instantiation sometimes takes long time (30ms):

_295

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions