Sto lavorando alla scrittura di un livello di servizio per un sistema di ordini in php. È lo scenario tipico, hai un ordine che può avere più partite singole. Quindi diciamo che è stata ricevuta una richiesta per memorizzare un elemento pubblicitario con immagini e commenti. Potrei ricevere una richiesta JSON come
{
'type': 'Bike',
'color': 'Red',
'commentIds': [3193,3194]
'attachmentIds': [123,413]
}
La mia idea era di avere una classe Service_LineItem_Bike
che sappia prendere i dati JSON e memorizzare un'entità per una bicicletta.
La mia domanda è, la classe Service_LineItem
ora ha bisogno di recuperare commenti e file allegati e memorizzare le relazioni. Service_LineItem
sembra che dovrebbe interagire con Service_Comment
e Service_FileUpload
. Le istanze di questi due altri servizi dovrebbero essere istanziate e passate al costruttore Service_LineItem
o impostate da Getter e Setter? L'iniezione delle dipendenze sembra la soluzione giusta, perché un accesso al servizio a un 'assistente per il recupero dei servizi' sembra sbagliato, e questo dovrebbe rimanere a livello di applicazione.
Sto usando Doctrine 2 come un ORM, e posso tecnicamente scrivere una query dql all'interno di Service_LineItem
per recuperare i commenti e i file caricati necessari per l'associazione, ma sembra che avrebbe un accoppiamento più stretto, piuttosto che partire questo fino all'oggetto di servizio giusto.