Domanda

E 'considerata buona / cattiva architettura di istituire un aiuto e lasciare che questo manico tutte le costanti, variabili e dati?

Attualmente sto scrivendo una abbastanza semplice estensione a che fare con gli account di accesso utente / terzi - per lo più frontend roba per esempio. 'Ricordati di me' essere controllato in alcuni casi, di dialogo di accesso di essere aperti in certi casi, ecc Utilizzando i biscotti abbastanza ampiamente per questo e nessun vero accesso al database con le opzioni di configurazione molto minimale via di amministrazione.

È stato utile?

Soluzione

"costanti, variabili e dati", quelle sonore per me come le cose 'modello'.

In generale, la risposta sta andando a dipendere realmente sul problema specifico che si sta cercando di risolvere. Ma io tendo a incapsulare questi tipi di cose in un modello - anche se non ha bisogno di utilizzare il database.

Ora ricordate, un modello rappresenta il dominio (in cui i mezzi a dominio aziendale / applicazioni logica) e non solo i dati di persistenza. Questo può creare confusione, come in questi giorni la gente vede 'modello' e pensa subito di database.

L'eccezione a questa regola è quando si ha bisogno di comportamento di accesso da un blocco o un modello. E 'molto comodo da usare aiutanti:

$this->helper('foomodule')->formatRefererenceNumber($myModel->getReferenceNumber())

Questo è molto più piacevole (e computazionalmente efficiente) rispetto all'alternativa

Mage::getModel('foomodule/model')->formatReferenceNumber($myModel->getReferenceNumber()

Naturalmente, si potrebbe pensare che non dovrebbe essere formatReferenceNumber solo un metodo su $ MyModel allora? E forse, sì. Ma averlo in un aiutante consente di separare la preoccupazione di formattazione di un numero di riferimento dal deposito di esso. Si può facilmente specificare le opzioni di formattazione alternative - possibilmente in diversi aiutanti -. Senza appesantire il vostro modello

L'altra volta che si desidera utilizzare gli helper rispetto ai modelli è se vi trovate a scrivere un sacco di codice PHP nei template. Diciamo che si dispone di una tabella di righe e si desidera righe dispari di essere un colore e righe anche un altro. Estraggo questo tipo di funzionalità in un aiutante.

In genere, la seguo euristica è quello di mantenere i dati aziendali e la logica nei modelli, e utilizzare gli helper per trasformare i dati in forme specifiche per la presentazione sul frontend.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top