$Model->Attributes=$_Post['newsletter'] Ignora I Valori Non Db

Immagina una newsletter: si potrebbe pensare di salvare a db il modello.

Però in fase di spedizione devo precisare almeno un destinatario della mail.

A me fa comodo usare la validazione automatica del form, così imposto una regola che nello scenario "invia" esegue la validazione come email del campo email. Ma per farlo devo avere un attributo (una variabile pubblica) definita nel modello della newsletter. Così è tutto automatico.

Inoltre posso separare bene i componenti: la spedizione viene gestita da un componente Mail che accetta direttamente un oggetto Newsletter…

Ma è solo una scelta di design puramente personale, e, sempre per i pochi mesi di esperienza su Yii, forse è del tutto sbagliata, ma mi sta dando buoni frutti.

Ed usare un CFormModel generandolo via Gii? Qualche post fa hai scritto che ti raddoppia il lavoro. Magari se è questo il “collo di bottiglia” che ti fa prendere una strada piuttosto che l’altra, … riusciamo a risolvere il problema.

Per caso lo hai scritto tu o hai usato componenti come swiftmailer?

La mia logica è sempre quella del "Prima deve funzionare, … poi se ho modo lo faccio anche funzionare meglio.".

Ci sono casi in cui ho usato il CFormModel. Era un caso simile al login predefinito, che è appunto un CFormModel. Ma in questo caso avrei dovuto prima validare tutto e poi riversarli a db, e non mi è piaciuto. Ora ho due situazioni ‘simili’ che seguono due strade diverse. Questo è stato voluto perchè desideriamo volutare ‘a lungo andare’ quale dei due approcci è più pratico.

Per la posta, si, uso SwiftMailer, ma non è ne veloce ne affidabile come il buon vecchio comando Mail, perchè lo chiedi ?

Per la filosofia, grazie al cielo dove lavoro ora la teoria è facciamo al meglio subito che ci risparmiamo manutenzione dopo; ovviamente è fattibile… diciamo nel 50% dei casi. Ma sta dando eccellenti frutti. Molte cose "andavano al primo colpo", abbiamo fatto solo dei tuning di performance e quasi zero modifiche estetiche … però anche qui il tempo dirà, fatto sta che avendo già in produzione un blocco importante del progetto, ma che non sta richiedendo grandi fix (solo 4 in un mese per ora, e molto piccoli), abbiamo potuto dedicarci alla prossima release che porterà grandi novità. Poi appena iniziano ad arrivare utenti arriveranno ovviamente ticket e bug trovati che a noi sono sfuggiti, però ci piace farle bene subito le cose.

Me ne sono andato da una azienda tempo fa prorpio perchè lavoravano col “pensiamoci poi” … :)

PS: possiamo chiudere qua la discussione ? siamo palesemente off-topic e in zona chat-su-fatti-personali …