Ho letto da qualche parte che dovresti essere generoso nella creazione di oggetti valore per le proprietà delle entità che fanno parte dell'API della classe.
Quindi l'ho fatto con la mia entità di progetto / aggregato, ma sembra ancora strano:
return new Project(
new ProjectId( $project->post->ID ),
new DestinationNumber( $DestinationNumber ),
new AssociatedClient( $associatedClientId ),
new NotificationForm( $NotificationFormName ),
new Status( $project->post->ID, $StatusFieldsAndValues ),
new Settings( $project->post->ID, $SettingsFieldsAndValues )
);
Tutte queste proprietà di entità hanno getter (come getStatus), il che significa che sono rilevanti per altri servizi o repository. Quindi, dovrei fare lo sforzo di creare un oggetto valore in ogni caso, o c'è una linea da qualche parte? Il mio esempio sembra eccessivo.