NEW Add extension point to DataObject->hydrate() #10047
Merged
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.
This PR creates a new extension point in
DataObject->hydrate()
. For reference,hydrate()
is called on every newly createdDataObject
when data is retrieved from the database (e.g. during iteration of a DataList or similar).This extension allows you to override hydrated columns, or pre-fetch some lazy-loaded ones. In my case, I am upgrading the madmatt/silverstripe-encrypt-at-rest module to CMS4 and needed a way to inject into the hydration process (as CMS3 hydrated with DBField objects but CMS4 just hydrates plain old scalar values - which in my case is an encrypted string).