Skip to content

[Serializer] Fix DataUriNormalizer deprecation (MIME type guesser is optional) #31923

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 7, 2019
Merged

[Serializer] Fix DataUriNormalizer deprecation (MIME type guesser is optional) #31923

merged 1 commit into from
Jun 7, 2019

Conversation

ogizanagi
Copy link
Contributor

Q A
Branch? 4.3
Bug fix? yes
New feature? no
BC breaks? no
Deprecations? no
Tests pass? yes
Fixed tickets N/A
License MIT
Doc PR N/A

Relates to #31771 (comment) :

The deprecation isn't fundamentally wrong, but if none of the Mime nor HttpFoundation components are installed, the DataUriNormalizer can be used, and the MIME type used will always be 'application/octet-stream'

public function __construct(MimeTypeGuesserInterface $mimeTypeGuesser = null)
{
if (null === $mimeTypeGuesser && class_exists('Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser')) {
$mimeTypeGuesser = MimeTypeGuesser::getInstance();
}
$this->mimeTypeGuesser = $mimeTypeGuesser;
}

if ($this->mimeTypeGuesser && $mimeType = $this->mimeTypeGuesser->guess($object->getPathname())) {
return $mimeType;
}
return 'application/octet-stream';

So this completes the deprecation message, as well as allowing null again when no default MIME type guesser is available at all.

@@ -34,12 +34,12 @@ class DataUriNormalizer implements NormalizerInterface, DenormalizerInterface, C
];

/**
* @var MimeTypeGuesserInterface
* @var MimeTypeGuesserInterface|null
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be fixed on 3.4, see #31922

@nicolas-grekas nicolas-grekas merged commit 2740bd1 into symfony:4.3 Jun 7, 2019
nicolas-grekas added a commit that referenced this pull request Jun 7, 2019
…guesser is optional) (ogizanagi)

This PR was merged into the 4.3 branch.

Discussion
----------

[Serializer] Fix DataUriNormalizer deprecation (MIME type guesser is optional)

| Q             | A
| ------------- | ---
| Branch?       | 4.3 <!-- see below -->
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | N/A   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

Relates to #31771 (comment) :

The deprecation isn't fundamentally wrong, but if none of the Mime nor HttpFoundation components are installed, the DataUriNormalizer can be used, and the MIME type used will always be `'application/octet-stream'`

https://github.com/symfony/symfony/blob/9691519ca46511005bc701ca93c2973923952034/src/Symfony/Component/Serializer/Normalizer/DataUriNormalizer.php#L39-L46

https://github.com/symfony/symfony/blob/9691519ca46511005bc701ca93c2973923952034/src/Symfony/Component/Serializer/Normalizer/DataUriNormalizer.php#L135-L139

So this completes the deprecation message, as well as allowing `null` again when no default MIME type guesser is available at all.

Commits
-------

2740bd1 [Serializer] Fix DataUriNormalizer deprecation (MIME type guesser is optional)
@ogizanagi ogizanagi deleted the fix/serializer-data-uri-deprec branch June 7, 2019 14:26
@fabpot fabpot mentioned this pull request Jun 26, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants