Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[HttpFoundation] work around PHP 7.3 bug related to json_encode()#31860

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
fabpot merged 1 commit intosymfony:3.4fromnicolas-grekas:json-34
Jun 5, 2019

Conversation

@nicolas-grekas
Copy link
Member

@nicolas-grekasnicolas-grekas commentedJun 4, 2019
edited
Loading

QA
Branch?3.4
Bug fix?yes
New feature?no
BC breaks?no
Deprecations?no
Tests pass?yes
Fixed tickets#31447
LicenseMIT
Doc PR-

I know, this doesn't make any sense.
json_encode embeds global state behind the scene :(

For reference, I asked on php-internals what they think about this:
https://externals.io/message/105653#105838

@fabpot
Copy link
Member

Thank you@nicolas-grekas.

@fabpotfabpot merged commite6e6301 intosymfony:3.4Jun 5, 2019
fabpot added a commit that referenced this pull requestJun 5, 2019
…ncode() (nicolas-grekas)This PR was merged into the 3.4 branch.Discussion----------[HttpFoundation] work around PHP 7.3 bug related to json_encode()| Q             | A| ------------- | ---| Branch?       | 3.4| Bug fix?      | yes| New feature?  | no| BC breaks?    | no| Deprecations? | no| Tests pass?   | yes| Fixed tickets |#31447| License       | MIT| Doc PR        | -I know, this doesn't make any sense.`json_encode` embeds global state behind the scene :(For reference, I asked on php-internals what they think about this:https://externals.io/message/105653#105838Commits-------e6e6301 [HttpFoundation] work around PHP 7.3 bug related to json_encode()
fabpot added a commit that referenced this pull requestJun 5, 2019
…e() (nicolas-grekas)This PR was merged into the 4.3 branch.Discussion----------[HttpClient] work around PHP 7.3 bug related to json_encode()| Q             | A| ------------- | ---| Branch?       | 4.3| Bug fix?      | yes| New feature?  | no| BC breaks?    | no| Deprecations? | no| Tests pass?   | yes| Fixed tickets | -| License       | MIT| Doc PR        | -This is the remaining of ##31860 for upper branches.Commits-------42904e3 [HttpClient] work around PHP 7.3 bug related to json_encode()
@lt
Copy link

lt commentedJun 5, 2019

@nicolas-grekas I don't think forcibly resetting the error state is the right solution here.

Andrea's response on the internals thread states that the original intent was to keep the two error handling mechanisms separate.

Bearing this in mind I think the correct solution is to skip thejson_last_error check whenJSON_THROW_ON_ERROR is set in the flags rather than performing a "last error reset"

@nicolas-grekas
Copy link
MemberAuthor

@lt thanks for the review, now I understand better :) WDYT of#31869?

fabpot added a commit that referenced this pull requestJun 5, 2019
…s-grekas)This PR was merged into the 3.4 branch.Discussion----------Fix json-encoding when JSON_THROW_ON_ERROR is used| Q             | A| ------------- | ---| Branch?       | 3.4| Bug fix?      | yes| New feature?  | no| BC breaks?    | no| Deprecations? | no| Tests pass?   | yes| Fixed tickets | -| License       | MIT| Doc PR        | -As hinted in#31860 by@ltCommits-------d18f42c Fix json-encoding when JSON_THROW_ON_ERROR is used
@fabpotfabpot mentioned this pull requestJun 6, 2019
This was referencedJun 26, 2019
nicolas-grekas added a commit that referenced this pull requestJun 28, 2019
This PR was merged into the 3.4 branch.Discussion----------Catch JsonException and rethrow in JsonEncode| Q             | A| ------------- | ---| Branch?       | 3.4| Bug fix?      | yes| New feature?  | no| BC breaks?    | no| Deprecations? | no| Tests pass?   | yes| Fixed tickets | adjustment to implementation of previous PRs for issue#31447| License       | MIT| Doc PR        | not applicablePR#31860 provided handling of PHP  7.3 `JSON_THROW_ON_ERROR` behavior in the various `JsonEncode` and related classes/methods.PR#31869 adjusted that. In particular, it adjusted ` src/Symfony/Component/Serializer/Encoder/JsonDecode.php` so that it catches any `JsonException` and re-throws it as `NotEncodableValueException`. That preserves the previous behavior of `JsonDecode:decode` - it always throws `NotEncodableValueException` when something goes wrong.IMO `JsonEncode:encode` needs the same logic. At the moment, if a caller specifies `JSON_THROW_ON_ERROR` then the method can throw `JsonException`, but actually the "standard" for `JsonEncode:encode` is that it throws `NotEncodableValueException`Adjust `JsonEncode:encode` to catch `JsonException` and rethrow it as `NotEncodableValueException`Commits-------9c76790 Catch JsonException and rethrow in JsonEncode
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@fabpotfabpotfabpot approved these changes

Assignees

No one assigned

Projects

None yet

Milestone

3.4

Development

Successfully merging this pull request may close these issues.

4 participants

@nicolas-grekas@fabpot@lt@carsonbot

[8]ページ先頭

©2009-2025 Movatter.jp