[5.3] base64_encode serialized objects before passing them to json_encode #16005
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In
Queue::createPayload()
, it is unsafe tojson_encode(['command' => serialize(clone $job)])
. Instead of throwing exception when json_encode is failed, we can dojson_encode(['command64' => base_64(serialize(clone $job))])
.Related PR: #15284
@taylorotwell @themsaid Do you consider it as a breaking change? I tried to handle old jobs already in the queue by changing the array key from 'command' to 'command64', and handling both keys in
CallQueuedHandler
.