api/symfony/Component/Serializer/Normalizer/DataUriNormalizer.yaml

82 lines
3.6 KiB
YAML
Raw Permalink Normal View History

2024-09-26 09:03:21 +00:00
name: DataUriNormalizer
class_comment: null
dependencies:
- name: File
type: class
source: Symfony\Component\HttpFoundation\File\File
- name: MimeTypeGuesserInterface
type: class
source: Symfony\Component\Mime\MimeTypeGuesserInterface
- name: MimeTypes
type: class
source: Symfony\Component\Mime\MimeTypes
- name: InvalidArgumentException
type: class
source: Symfony\Component\Serializer\Exception\InvalidArgumentException
- name: NotNormalizableValueException
type: class
source: Symfony\Component\Serializer\Exception\NotNormalizableValueException
properties: []
methods:
- name: denormalize
visibility: public
parameters:
- name: data
- name: type
- name: format
default: 'null'
- name: context
default: '[]'
comment: "# * Normalizes an {@see \\SplFileInfo} object to a data URI.\n# * Denormalizes\
\ a data URI to a {@see \\SplFileObject} object.\n# *\n# * @author K\xE9vin Dunglas\
\ <dunglas@gmail.com>\n# */\n# final class DataUriNormalizer implements NormalizerInterface,\
\ DenormalizerInterface\n# {\n# private const SUPPORTED_TYPES = [\n# \\SplFileInfo::class\
\ => true,\n# \\SplFileObject::class => true,\n# File::class => true,\n# ];\n\
# \n# private readonly ?MimeTypeGuesserInterface $mimeTypeGuesser;\n# \n# public\
\ function __construct(?MimeTypeGuesserInterface $mimeTypeGuesser = null)\n# {\n\
# if (!$mimeTypeGuesser && class_exists(MimeTypes::class)) {\n# $mimeTypeGuesser\
\ = MimeTypes::getDefault();\n# }\n# \n# $this->mimeTypeGuesser = $mimeTypeGuesser;\n\
# }\n# \n# public function getSupportedTypes(?string $format): array\n# {\n# return\
\ self::SUPPORTED_TYPES;\n# }\n# \n# public function normalize(mixed $object,\
\ ?string $format = null, array $context = []): string\n# {\n# if (!$object instanceof\
\ \\SplFileInfo) {\n# throw new InvalidArgumentException('The object must be an\
\ instance of \"\\SplFileInfo\".');\n# }\n# \n# $mimeType = $this->getMimeType($object);\n\
# $splFileObject = $this->extractSplFileObject($object);\n# \n# $data = '';\n\
# \n# $splFileObject->rewind();\n# while (!$splFileObject->eof()) {\n# $data .=\
\ $splFileObject->fgets();\n# }\n# \n# if ('text' === explode('/', $mimeType,\
\ 2)[0]) {\n# return \\sprintf('data:%s,%s', $mimeType, rawurlencode($data));\n\
# }\n# \n# return \\sprintf('data:%s;base64,%s', $mimeType, base64_encode($data));\n\
# }\n# \n# public function supportsNormalization(mixed $data, ?string $format\
\ = null, array $context = []): bool\n# {\n# return $data instanceof \\SplFileInfo;\n\
# }\n# \n# /**\n# * Regex adapted from Brian Grinstead code.\n# *\n# * @see https://gist.github.com/bgrins/6194623\n\
# *\n# * @throws InvalidArgumentException\n# * @throws NotNormalizableValueException"
- name: supportsDenormalization
visibility: public
parameters:
- name: data
- name: type
- name: format
default: 'null'
- name: context
default: '[]'
comment: null
- name: getMimeType
visibility: private
parameters:
- name: object
comment: '# * Gets the mime type of the object. Defaults to application/octet-stream.'
- name: extractSplFileObject
visibility: private
parameters:
- name: object
comment: '# * Returns the \SplFileObject instance associated with the given \SplFileInfo
instance.'
traits:
- Symfony\Component\HttpFoundation\File\File
- Symfony\Component\Mime\MimeTypeGuesserInterface
- Symfony\Component\Mime\MimeTypes
- Symfony\Component\Serializer\Exception\InvalidArgumentException
- Symfony\Component\Serializer\Exception\NotNormalizableValueException
interfaces:
- NormalizerInterface