2015-11-26 23 views
19

In un progetto phoenix/elisir: che cosa è un buon posto per mettere le funzioni di supporto. Per esempio: io uso Timex per gestire le date, ma devo fare alcune trasformazioni sulla struttura restituita per usarlo con il mio driver DB (uno usa la chiave: min, l'altro: minuto, ecc.). Non voglio ripetere questo pezzo di codice in ogni modello e scriverei una semplice funzione che lo fa. Quale sarebbe un buon posto per metterlo? Solo in un modulo all'interno della cartella/lib? Ci sono delle linee guida su come organizzarlo?Dove mettere le funzioni di supporto in un progetto phoenix?

risposta

34

Non credo ci siano ancora delle linee guida. È possibile creare moduli raggruppati per argomento, ad esempio MyApp.TimexHelpers e quindi importarli nelle posizioni in cui si desidera effettivamente utilizzare gli helper.

La differenza principale tra lib e web per Phoenix prima di 1,2 è il comportamento di ricarica. Per rendere effettive le modifiche in lib è necessario riavviare il server. Quindi tendo a mettere la maggior parte delle cose sotto web per semplificare lo sviluppo. Forse web/helpers ...

Dal momento che Phoenix 1.2 "la directory lib/è ora il codice ricaricato di default insieme al web/in sviluppo". Vedi Changelog.

+12

Risposta perfetta. –

Problemi correlati