Stiamo utilizzando Catalyst per eseguire il rendering di molte webform in quella che diventerà una grande applicazione. Non mi piace il modo in cui tutti i dati del modulo sono confusi in un grosso hash nel controller, prima di essere passati al modello. Sembra confuso e disordinato per il modello. Sono sicuro che ci sono dei veri svantaggi che non ho descritto correttamente ... Ci sono?
Una soluzione è decidere solo su una convenzione per l'hash, ad esempio:
{
defaults => {
type => ['a', 'b', 'c']
},
input => {
type => 'a'
},
output => {
message => "2 widgets found of type a",
widgets => [ 'foo', 'bar' ]
}
}
Un altro modo è quello di memorizzare i dati della pagina / modulo come attributi in una classe (un ViewModel?) e passare un intero oggetto al modello, che potrebbe usare in questo modo:
<p class="message">[% model.message %]<p>
[% FOREACH widget IN model.widgets %]
In che modo è più flessibile per le applicazioni di grandi dimensioni?
Esistono altre soluzioni o strutture esistenti compatibili con Catalyst?