A 'virtual properties' attribute #3
Draft
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.
We already have a very handy
UpdateVirtualTrait
that lets us apply functions whenever updating data via constructor orupdate()
. This lets us normalise or parse complex data. However, it's a little cumbersome.This lets one declare an attribute for properties that have a respective method that applies these normalisations, instead of defining them in the
virtual()
helper.There are two core attributes:
Such as:
This PR also includes a helper trait (VirtualHelperTrait) that creates helpers to configure objects on update().
Draft because:
VirtualHelperTrait
to something more obvious? Or just bundle it with the existingUpdateVirtualTrait
?applyVirtual()
isn't appropriate for strict typings in PHP 8+. This is fixed in thefeat/hooks
branch.