MVC, quelques questions.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : MVC, quelques questions.

par Hywan » 12 juil. 2007, 18:44

Merci Cyrano :)

par Cyrano » 12 juil. 2007, 18:40

Je suis encore très loin de maîtriser l'animal. Je te recommande le forum de la communauté francophone du Zend Framework où quelques pointures en la matière circulent. Le sujet a déjà plus ou moins été abordé aussi. Tu devrais y trouver des pistes de réponse.

par Hywan » 12 juil. 2007, 16:02

Donc le contrôleur frontal (dans le cas de ZF) n'appelle a aucun moment les modèles.
En revanche, les autres contrôleurs (moduleController par exemple) peuvent appeler les modèles pour leur fonctionnement ?

Question de conception également : est-ce qu'un contrôleur non-frontal peut rappeler le contrôleur frontal (on rentrera dans une boucle ou une récursivité) ? Dans le ZF il me semble que c'est possible, puisque le dispatch est une boucle avec un plugin broker. Mais est-ce que c'est une bonne idée, ie. vraiment utile ?

Merci.

Edit : Est-ce qu'on doit inclure la localisation, traduction, connexion au base etc., dans le MVC ?

par Cyrano » 12 juil. 2007, 15:44

Ce que tu mettras dans les modèles selon l'architecture du Zend Framework, ce sont des dataobjects, des extensions où seront par exemple des informations particulières sur une table donnée, son nom, le nom de sa (ses?) clé(s) primaire(s), les clés étrangères et les tables liées. Éventuellement, tu y mettras aussi certaines requêtes particulières trop complexes pour être construites facilement avec le système.

Exemple de code que tu pourrais avoir dans un modèle :
<?php
/**
 * Classe étendue de Zend_Db_Table_Abstract
 * pour la table categorie
 *
 * @package DAO
 */
class Categorie extends Zend_Db_Table_Abstract
{
    /**
     * Nom du schema.
     * @var String
     */
    protected $_name            = 'categorie';
    /**
     * Nom de la clé primaire.
     * @var String
     */
    protected $_primary         = array('cat_id');
    /**
     * Dépendances des tables liées.
     * @var Array
     */
    protected $_referenceMap    = array(
        'Rubrique' => array(
            'columns'           => array('rub_id'),
            'refTableClass'     => 'Rubrique',
            'refColumns'        => array('rub_id')
        )
    );
}

MVC, quelques questions.

par Hywan » 12 juil. 2007, 14:52

Bonjour :)

Je m'intéresse beaucoup à MVC et j'ai étudié quelques modèles.
En particulier celui de ZF (Zend Framework).

Une chose me turlupine : où sont les modèles ?

Le contrôleur frontale dispatche les requêtes. Pour domain.tld/module/page, on a le contrôleur moduleController et l'action pageAction qui sont instancés et appelés. Ces derniers renvoient un viewRender. Ok, mais où est le model dans tout ça ?

Ce que je comprends, c'est que le modèle est en fait moduleController et pageAction non ?

Le contrôleur frontale est censé appelé le modèle, et le "compiler" avec la vue (qui est appelée en sortie). Donc ici, le modèle serait moduleController et pageAction. Du moins, c'est ce que je comprends.

Pouvez-vous m'éclairer ? :)