-
-
Notifications
You must be signed in to change notification settings - Fork 30
Open
Description
I've got a model, that uses several VO properties, using a ValueObjectInterface.
Trying to create a generic PropertyCaster, CastToValueObjectInterface, I miss the concrete Attribute target (the property on whom is applied) to hydrate the property without need to explicity add the class to be hydrated on the attribute
class Name implements ValueObject {
public function from(mixed $value): self
}
final readonly class Model {
#[CastAsValueObject]
public Name $name
}
readonly class CastToValueObjectInterface implements PropertyCaster {
public function cast(mixed $value, ObjectMapper $hydrator, PropertyHydrationDefinition $context=null): mixed
{
if (!$context?->firstTypeName instanceOf ValueObject)
throw \InvalidArgumentException("Annotated property does not implement ValueObject");
return ($context->firstTypeName)::from($value);
}
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels