Je suis relativement nouveau dans la programmation orientée objet. Je comprends à peu près les concepts, mais pratiquement, j'ai du mal à trouver des informations sur la meilleure utilisation de Models dans mes applications Zend Framework.Zend Framework: Utilisation de modèles et de vues, bonnes pratiques
Plus précisément, j'ai un modèle (qui ne s'étend rien) qui n'utilise pas une table de base de données. Il utilise des getters et setters pour accéder à ses membres protégés. Je me bats avec la meilleure façon d'afficher ce modèle dans la vue. Je ne veux pas logique dans mes modèles de vue, mais je me trouve dans la situation suivante:
Dans mon contrôleur:
$object = new Object();
$object->setName('Foo Bar');
$this->view->object = $object;
Dans mon modèle de vue:
<h2><?= $this->object->getName() ?></h2>
Je ne J'aime vraiment appeler des fonctions dans mes modèles de vue, mais je ne connais pas de meilleure façon de le faire. Je ne veux pas que mes membres de modèle soient publiques, mais je veux essentiellement à obtenir les mêmes résultats:
<h2><?= $this->object->name ?></h2>
Je ne veux pas que mon contrôleur pour faire tout le travail d'avoir à tout savoir sur le modèle:
$object = new Object();
$object->setName('Foo Bar');
$this->view->object = $object;
$this->view->object->name = $object->getName();
Quelle est la meilleure pratique pour utiliser des modèles dans Zend Framework? Quelqu'un peut-il recommander un tutoriel qui m'aiderait à comprendre ce dilemme Model/View dans Zend Framework?
C'est en fait une mauvaise façon de faire les choses. Non seulement vous donnez un accès arbitraire à toutes les propriétés, qu'il s'agisse de celles qui doivent être sérialisées ou non à partir d'un formulaire, mais cela surcharge également le modèle avec le concept de mappage, ce qui a été demandé. – Saem
La mise en forme de la logique dans le modèle mélange la vue et le modèle, qui est également de mauvaise qualité. Et comme je l'ai déjà dit, remplacer le comportement par défaut est très simple et évite la nécessité de créer des getters et setters stupides. –
Et si vous regardez la classe Zend_Db_Table_Row, vous verrez que Zend utilise un principe similaire pour exposer les champs et leurs valeurs à partir des tables. –