IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

MVC, quel ordre d'implémentation ?


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 196
    Points : 106
    Points
    106
    Par défaut MVC, quel ordre d'implémentation ?
    Bonjour

    Cette question mériterait plus d'être un sondage, mais je connais encore mal le dit MVC donc je n'ose pas

    Je viens donc de mettre un pied dans le plat : mon architecture est à peut près choisie / organisée et il va falloir s'y mettre.
    Etant terre à terre, je me dis que je vais commencer par aller me battre le modèle, ie la base de donnée pour en sortir des trucs avant de me préoccuper du reste.
    Mais après tout, je pourrai aussi commencer par les vues. Les contrôleurs, je vois mal comment bosser dessus si je n'ai rien à contrôler.

    Bref, par quoi commenceriez vous et pourquoi ?

  2. #2
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    Bah si tu as des choses à filtrer comme par exemple s'assurer que la page demandée par l'utilisateur existe, verifier qu'il a bien les droits d'accès etc. Ensuite s'assurer qu'il n'y a pas un problème genre redirection (demandée par le modèle) ou une exception dans ce cas gerer les cas d'erreur etc ^^

  3. #3
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 563
    Points : 2 390
    Points
    2 390
    Par défaut
    Pour ma part, je commence plutôt par créer l'interface (= la vue).

    ça permet de voir à quoi va bien pouvoir ressembler l'appli sans forcément avoir quelque chose de fonctionnel. Tu peut ainsi commencer à montrer un petit aperçu au client pour être sur que vous vous êtes bien compris sur le cahier des charges et éviter de partir sur quelque chose qui ne correspond pas à la demande.

    Ensuite, le modèle et le contrôleur je trouve que ça peut se faire plus ou moins en parallèle, tu code une action de ton Modèle et tu la rattache à ton interface via ton Contrôleur.

    Après j'ai peut être pas forcément la meilleure méthode.
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  4. #4
    Membre averti
    Homme Profil pro
    Lead Dev Web
    Inscrit en
    Avril 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lead Dev Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2005
    Messages : 282
    Points : 390
    Points
    390
    Par défaut
    Pour ma part tout se fait plus ou moins en parallèle. Surtout si c'est un petit projet.

  5. #5
    Membre éclairé Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Points : 845
    Points
    845
    Par défaut
    Je commencerai par implémenter le minimum requis permettant de valider le workflow général que tu as choisi. Juste le strict minimum parce qu'il y a de grande chance que cette première étape chamboule en partie tes plans.

    Le MVC de Zend par exemple a été complètement refactoré et même "déconstruit" au cours des premières versions. En effet, la seule chose qui soit à peu près établie et admise dans le pattern MVC ce sont les 3 lettres "M", "V" et "C"

    Donc juste implémenter grossièrement les quelques composants vitaux que tu vas pouvoir assembler et faire tourner de concert. Qui fait quoi, héritage, composition, interface, classe abstraite, qui agrège quoi, qui retourne quoi etc.. un sacré bordel en fait, c'est ça qui est intéressant.

    Inutile également de dire qu'il est plus que conseillé d'étudier les frameworks MVC qui ont actuellement pignon sur rue: Zend, symfony, Igniter, jelix et toute la clique.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 196
    Points : 106
    Points
    106
    Par défaut
    En fin de compte, je fais une implémentation grossière comme dit metagoto, en suivant l'ordre des lettres, M, puis V puis C. Et après je compléterai.

    Pourquoi M, V puis C ? En fait c'est tel que je le vois l'ordre du plus simple à élaborer/imaginer, au plus compliqué.
    - D'abord les données, sachant que j'ai déjà la base de données, il me suffit d'implémenter leur représentation en php, et le nécessaire pour accéder à la base. Pas besoin de se fouler l'imagination donc.
    - Puis les vues. Après concertation avec l'utilisateur et en utilisant les formats défini précédemment, ça va assez vite aussi.
    - Enfin le controle. La, faut simplement voir comment faire coller les deux bouts.

    Au contraire si j'avais commencé par le contrôle, ce serait pour moi comme tracer une ligne entre deux points qu'on ne connait pas.

    Voilà, je pense que ça fera l'affaire pour cette fois

    Merci pour vos avis

  7. #7
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    C'est marrant moi j'ai plutot tendance à faire C M V ^^

  8. #8
    Membre éclairé Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Points : 845
    Points
    845
    Par défaut
    Moi C, V, M

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2005
    Messages : 58
    Points : 74
    Points
    74
    Par défaut
    M - V - C ... dans l'ordre en fait

    J'ai l'habitude de travailler par itérations, donc pour les fonctionnalités de l'itération je fais je commence par le Modèle. Cela me permet de valider la cohérence de la modélisation de l'application.
    Avec CakePHP, il y a la notion de scaffolding qui permet de faire un prototype en 2 coups de cuillère à pot depuis le modèle. Ainsi tu peux tester que tes relations sont OK, que ton modèle est robuste et ajouter simplement des valeurs basique dans ta bdd.

    Dans un deuxième temps, je génère mes actions CRUD et customise mon formulaire et la Vue. Enfin, je code le contrôleur qui fait ce que je veux avec les données envoyées par la vue, et appelle les méthodes qu'il faut des Modèles.

    Bien entendu, c'est rarement aussi net que ça et les validations du modèle sont parfois effectuées après, de même que les vues faites en dernier (ou en parallèle par un graphiste).

Discussions similaires

  1. Dans quel ordre se fait l'évaluation
    Par dj.motte dans le forum C
    Réponses: 12
    Dernier message: 22/08/2008, 23h40
  2. Quel ordre utiliser pour les contraintes sur les tables ?
    Par Icewall dans le forum Langage SQL
    Réponses: 14
    Dernier message: 20/04/2008, 19h52
  3. [MVC] Problème pour l'implémentation
    Par Baptiste Wicht dans le forum MVC
    Réponses: 20
    Dernier message: 24/04/2007, 21h29
  4. [IDE][VS]Quel ordre d'installation d'une plateforme Web/IIS?
    Par gondek dans le forum Visual Studio
    Réponses: 1
    Dernier message: 03/03/2006, 16h21
  5. Dans quel ordre ranger les vertices ?
    Par legend666 dans le forum OpenGL
    Réponses: 5
    Dernier message: 10/10/2005, 10h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo