-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
[Serializer] deserialize as a null when inner object cannot be created and type hint allows null #26140
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
[Serializer] deserialize as a null when inner object cannot be created and type hint allows null #26140
Conversation
With this PR DummyWithNullableConstructorObject
would be constructed with null
passed as $inner
because of the type hint.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This can even be merged as a bugfix to me.
Looks like a bug fix to me as well. Which version should it be merged to? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK for 3.4
Thank you @kbkk. |
…t be created and type hint allows null (kbkk) This PR was squashed before being merged into the 4.1-dev branch (closes #26140). Discussion ---------- [Serializer] deserialize as a null when inner object cannot be created and type hint allows null | Q | A | ------------- | --- | Branch? | master | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | | License | MIT ```php class ObjectConstructorDummy { protected $foo; public $bar; private $baz; public function __construct($foo, $bar, $baz) { $this->foo = $foo; $this->bar = $bar; $this->baz = $baz; } } class DummyWithNullableConstructorObject { private $id; private $inner; public function __construct($id, ?ObjectConstructorDummy $inner) { $this->id = $id; $this->inner = $inner; } public function getId() { return $this->id; } public function getInner() { return $this->inner; } } ``` Trying to deserialize to `DummyWithNullableConstructorObject` with the following data currently fails: ```php [ 'id' => 10, 'inner' => null ] ``` With this PR `DummyWithNullableConstructorObject ` would be constructed with `null` passed as `$inner` because of the type hint. Commits ------- 2fe9eb1 [Serializer] deserialize as a null when inner object cannot be created and type hint allows null
Trying to deserialize to
< 8000 div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="[ 'id' => 10, 'inner' => null ]">DummyWithNullableConstructorObject
with the following data currently fails: