Newsgroup: it.comp.www.php
Titolo: Symfony e il "modello"

E' un mesetto che sono su un progetto in symfony (giï¿œ iniziato, io sono 
entrato verso la fine). Fondamentalmente nella mia parte devo fare 
report complessi e in generale tirare fuori dati con conti un po' 
complicati.
 
Contando che il risultato delle mie operazioni non ï¿œ un'entitï¿œ, ma il 
risultato di numerose operazioni su molte tabelle i cui dati sono presi 
e riaggregati, la mia domanda (finalmente) ï¿œ:
dove caspita si mette tutta la parte di modello in symfony? se lavorassi 
con entitï¿œ "normali" si fanno i custom repository che in cui metto 
interrogazioni complesse a piacere e mi ritorna uno o una collezione 
delle entitï¿œ x cui definisco il repository, ma se io l'entitï¿œ non la ho?
Senza entitï¿œ non ho neanche il file di configurazione (o le annotazioni) 
dove definirei il repository.
 
Faccio un esempio (alieno al mio caso e super semplice ma da un'idea):
se io avessi un db con giorno della settimana e attivitï¿œ e dovessi 
andare ad estrarre le settimane dove si sono svolte per almeno 2 gg una 
certa attivitï¿œ mi troverei davanti allo stesso problema.
La settimana non esiste come entitï¿œ quindi non puï¿œ avere un repository. 
Ora la mia bella query (col dbal, perchï¿œ diciamo che devo far fare conti 
complicati al db) dove me la ficco? al momento sto lasciando nel 
controller, ma ï¿œ ovviamente una porcheria, qual'ï¿œ il modo corretto di 
organizzarsi?
 
Ho giï¿œ cercato in lungo e in largo con gugol ,ma evidentemente non trovo 
la chiave giusta di ricerca x trovare qualcosa di utile...
 
-- 
Z.


Prima domanda, che cosa usi per il db?
Doctrine?
 
Seconda domanda, nel bundle non hai una cartella "Entity"?
Dentro oltre alla definizione delle entità dovresti avere anche i 
repository.
Se non li hai puoi farli creare in automatico da symfony
Se hai da fare query fuori dalla grazia di Dio quello sarebbe il posto 
giusto
 
-- 
I fatti mi cosano

 giusto
 
Eh ma parliamone :D
i repository lisci, legati all'entità (quelli che non trovo e costruisce 
lui) per me sono intoccabili, perchè tutta la roba generata in auto x 
politica dell'azienda non si smanaccia, al massimo la si estende 
(peraltro mi trova assolutamente d'accordo) e cmq sono appunto legati 
alla presenza di un'entità (che nel mio caso non ho, io vado a trattare 
risultati molto elaborati che derivano da pezzetti di tante entità, ma 
riaggregati e smanettati pesantemente). I custom repository sono 
anch'essi legati all'entità e costruiti (vuoti) in automatico. E' vero 
che li potrei scrivere dentro di tutto senza problemi, ma non ha molto 
senso logico che per riagganciarmi al caso stupidissimo che ho fatto nel 
post, io faccia un custom repository dell'entità giorno che mi da 
indietro una roba diversa (un oggetto settimana x dire); il custom repo 
di giorno per me deva restuitrmi solo o un giorno singolo o una 
collezioni di giorni, nulla d+ e nulla d-.
Allo stesso modo anche la sola creazione di un oggetto "settimana" che 
non esiste su db, quindi non dovrebbe essere entità, dove andrebbe 
messo? che se lui avesse un luogo, probabilmente un repository manuale 
scritto da me potrebbe eccome esistere nella sua "zona" :P
 
-- 
Z.

Il 22/05/2013 12:23, Z. ha scritto:
 
Per mera cronaca:
alla fine mi son rotto e ho messo tutta sta roba nei servizi, li ho 
chimati qualcosaModel e li uso dai controller.
Usare l'entity manager (o qualsiasi altra roba) nei servizi è banale col 
dependency injection e via andare.
Funzionare funziona bene e mi soddisfa un po' di +, l'unica cosa non mi 
è chiaro se avere palate di servizi in qualche modo lo rallenta (anche 
quando non li usi)
 
 
-- 
Z.