Mi chiedo quale sia il tuo approccio sul seguente argomento:
diciamo che abbiamo una struttura MVC con entità, repository, controller e livello di servizio.
Il mio approccio all'utilizzo sopra era abbastanza chiaro per me:
- controller usa i servizi I servizi
- eseguono manipolazioni sui dati quando necessario, I servizi
- utilizzano classi di repository per salvare e aggiornare i dati da db
- controller ottiene l'output dei servizi (quando necessario) e lo spinge per visualizzare
Tuttavia, ieri mi sono imbattuto in una soluzione popolare in Symfony2
world, in cui
- controller ha accesso a entityManager / sessionFactory
- controller usa servizi per eseguire manipolazioni ai dati
- controller utilizza entityManager / sessionFactory e gli archivi direttamente per eseguire letture, salvare e gestire le transazioni del database.
All'inizio non ero d'accordo con il secondo approccio, so che infrange alcuni principi di architettura pulita, ma ... è mostrato in un sacco di tutorial ufficiali sul sito Symfony2
. Quindi ho pensato che sarebbe stato meglio chiedere.
In altre parole: è giusto rendere il controllore direttamente responsabile del salvataggio e del recupero dei dati e della gestione delle transazioni? Quali sono alti e bassi?