Sono relativamente nuovo alla programmazione orientata agli oggetti. Capisco praticamente i concetti, ma in pratica sto facendo davvero fatica a trovare informazioni su come utilizzare al meglio i modelli nelle mie applicazioni Zend Framework.Zend Framework: utilizzo di modelli e viste, best practice
In particolare, ho un modello (che non estende nulla) che non utilizza una tabella di database. Usa getter e setter per accedere ai suoi membri protetti. Mi trovo alle prese con il modo migliore per visualizzare questo modello nella vista. Non voglio che la logica nei miei modelli di vista, ma mi trovo nella seguente situazione:
Nel mio controller:
$object = new Object();
$object->setName('Foo Bar');
$this->view->object = $object;
A mio modello di vista:
<h2><?= $this->object->getName() ?></h2>
I don' Mi piace molto chiamare le funzioni nei miei modelli di visualizzazione ma non conosco un modo migliore per farlo. Non voglio che i membri del mio modello da pubblico, ma io fondamentalmente voglio ottenere gli stessi risultati:
<h2><?= $this->object->name ?></h2>
io non voglio che il mio controller per fare tutto il lavoro di dover conoscere tutto ciò che riguarda il modello:
$object = new Object();
$object->setName('Foo Bar');
$this->view->object = $object;
$this->view->object->name = $object->getName();
Qual è la migliore pratica di utilizzo dei modelli in Zend Framework? Qualcuno può consigliare qualche tutorial che mi aiuti a capire questo dilemma Modello/Vista in Zend Framework?
Questo è in realtà un modo scadente di fare le cose. Non solo si dà accesso arbitrario a tutte le proprietà, siano esse che devono essere (non) serializzate a/da un modulo o meno, ma sovraccaricano anche il modello con il concetto di mappatura, che è quello che è stato effettivamente chiesto. – Saem
Inserire la logica del modulo nel modello unisce la vista e il modello che è anche una forma scadente. E come ho già detto, ignorare il comportamento di default è molto semplice ed evita la necessità di creare getter e setter stupidi. –
E se osservi la classe Zend_Db_Table_Row, scoprirai che Zend utilizza effettivamente un principio simile per esporre i campi e i relativi valori dalle tabelle. –