Skip to content

Fix wrong data type in codec tutorial #1194

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 2 commits into from
Nov 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/examples/codecs/handling-data-types/Person.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ final class Person
{
public function __construct(
public string $name,
public readonly DateTime $createdAt = new DateTime(),
public readonly DateTimeImmutable $createdAt = new DateTimeImmutable(),
public readonly ObjectId $id = new ObjectId(),
) {
}
Expand Down
7 changes: 6 additions & 1 deletion docs/tutorial/codecs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,12 @@ BSON date and accompanying timezone string. Those same embedded documents can th
.. literalinclude:: /examples/codecs/handling-data-types/DateTimeCodec.php
:language: php

This codec can now be leveraged by other codecs handle date fields.
.. note::
When writing a codec, you should be as lenient as possible when it comes to handling data. In this case, the codec
handles any ``DateTimeInterface`` when encoding to BSON, as a ``UTCDateTime`` instance can be created from any such
object. When decoding data from BSON, it will always decode to a ``DateTimeImmutable`` instance.

This codec can now be leveraged by other codecs that handle date fields.

First, we add a ``createdAt`` field to the ``Person`` class:

Expand Down