-
-
Notifications
You must be signed in to change notification settings - Fork 504
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
doc: Update custom mapping example #2654
Conversation
ed91223
to
868924c
Compare
31708c8
to
f21b657
Compare
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.
LGTM with a minor suggestion for checks
{ | ||
// This is called to convert a Mongo value to a PHP representation | ||
return new \DateTime('@' . $value->sec); | ||
$timeZone = new DateTimeZone($value['tz']); |
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.
Just a suggestion, but this could benefit from some value checks:
if (! is_array($value) || ! isset($value['utc'], $value['tz'])) {
throw new Exception(); // TODO: throw correct exception class
}
The end result will be the same, but I feel like there can be more useful information in the exception message rather than letting PHP throw its type errors. Not sure if there's prior art for this in our type, so feel free to disregard and leave this as an exercise to the user.
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.
Absolutely, it's easy to be sure of a property's value, especially with typing, but there can always be surprises with database content, especially when there's no schema (which is certainly very common).
827f613
to
021a38c
Compare
@GromNaN Please update your commit messages to more meaningful ones. Don't repeat messages and don't use just one word. |
The commit history is not very meaningful. I squash and update the unique commit message before merging. This commits are just a raw history of my changes and fixes that help when reviewing a second time the PR. |
The previous example was a simplified copy of the date type. In order to present something more useful, the new example is inspired by MongoDB's codec tutorial.
021a38c
to
911fe56
Compare
@SenseException I squashed the commits in this PR. |
* 2.9.x: (24 commits) Fix typo in code example (#2670) Label PRs about GH actions with "CI" (#2632) Review basic mapping (#2668) Fix wording (#2667) Add native type to private properties and final classes (#2666) Review and add tests on `ResolveTargetDocumentListener` (#2660) Remove soft-delete-cookbook (#2657) doc: Remove wakeup and clone cookbook (#2663) Modernize generated code for Hydrators (#2665) Add tests for introduction (#2664) doc: Review mapping ORM and ODM cookbook (#2658) doc: Review cookbook on blending ORM and ODM (#2656) doc: Review and test validation cookbook (#2662) Update custom mapping example (#2654) doc: Review Simple Search Engine Cookbook (#2659) doc: Add cookbook about embedding referenced documents using $lookup (#2655) doc: Add type to properties (#2652) doc: Review custom collections and repository docs (#2653) doc: Review Getting Started (#2650) Move annotations-reference to attributes-reference (#2651) ...
Summary
The previous example was a simplified copy of the
date
type. In order to present something more useful, the new example is inspired by the codecs tutorial.Also initializing tests on documentation examples.