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

MVC PHP Discussion :

Bonnes pratiques et feedback sur MVC


Sujet :

MVC PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 132
    Points : 99
    Points
    99
    Par défaut Bonnes pratiques et feedback sur MVC
    Bonjour,

    En réalité je ne cherche pas à savoir ce que cela signifie, j'ai déjà une petite expérience du développement avec MVC.

    Ma question est un peu plus précise.

    En effet, je me retrouve fasse au problème suivant :

    J'ai plusieurs modèles (ex: Model, Gallery, Vote, User, etc..)
    Comme vous vous en doutez tous ceci est lié d'une manière où d'une autre..

    Souvent on a besoin de trier les résultats d'une requête, ou d'autre opération.

    J'aimerai donc en savoir plus sur la façon de réaliser la partie modele, plus en détails, avec précision et/ou cas d'utilisation.

    Par exemple, je me demandais s'il était judicieux d'utiliser le singleton ?
    Est ce une bonne idée de retourner un objet (select par exemple) plutot qu'un tableau avec le résultat ? (ainsi on peut continuer le traitement de l'objet plus facilement)
    J'ai en entendu parler du 'Domain Model' mais je n'ai pas réussi à trouver beaucoup d'infos à ce sujet..

    J'insiste quand même sur le fait que je ne cherche pas de tutoriaux MVC généraliste mais plus des infos/documents/réponses de la part d'utilisateurs expérimentés sur la mise en place des Modèles et ces "bonnes pratiques"

  2. #2
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Tu peux éventuellement parcourir ce forum : http://www.developpez.net/forums/f12...framework/mvc/

    bien que liées au ZF, les discussions sont aussi intéressantes pour la théorie
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 132
    Points : 99
    Points
    99
    Par défaut
    Merci pour cette réponse, mais j'utilise déjà le ZF.
    En plus y'a énormement de choses dans ce forum..
    j'étais plus à) la recherche de documents précis ou d'exemples concrets !

  4. #4
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Je vais quand même déplacer ton message dans ce forum en lui attribuent un titre plus explicite. Tu devrais y rencontrer une audience plus ciblée sur ton besoin.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  5. #5
    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
    Le model qui retourne un object select ?
    Non merci !

    De mon côté le model retourne à 90% du temps, les données sous forme de tableau près à être passer à la "vue" (sauf si modifications spécifiques requises).

    Par contre pourquoi par un model avec une méthode qui retourne un objet select, mais dans ce cas c'est un autre model qui fait appel à cette méthode.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 132
    Points : 99
    Points
    99
    Par défaut
    En fait je pensais plutot à une nouvelle couche d'abstraction.
    Le model lui renverrait de toutes façons toujours des données (tableaux, objets simple, variable scalaire ou booléenne)

    Si l'on prends un exemple simple il y a des cas où cela pourrait être adaptés

    Ex j'ai une bdd avec des Livres, des Catégories, des Auteurs, des Pays etc...

    J'aurai un model pour chacun d'entre eux.

    Supposons le model Auteurs

    Je pourrais avoir les méthodes suivantes :

    getAll();
    getByBook($idBook);
    getByCategory($idCat);
    getByName($name);
    getByCountry($code);
    Mais qu'en est il si je veux ajouter à ça la possibilité de me retourner les éléments triés par la bdd (ce qui me parait plus efficace car c'est son role que le traiter le résultat dans php (et d'ailleurs c'est pas vraiment son role)
    L'idée ça pourrait d'être une couche d'abstraction qui permettrait d'agir sur l'objet select directement, et de lui apliquer un tri par exemple.

    En terme d'utilisation, de souplesse ça me parait plus interessant que d'ajouter un param dans chacune des méthodes qui permettrait de faire le tri.
    Non ?

    Admettons également que je veuille par exemple récupérer tous les auteurs qui ont écris le livre qui appartient à la catégorie 6, qui appartient au pays dont le code est fr ?

    J'aimerai pouvoir avoir une interface fluide du genre :

    $auteur->getByCategory(6)->getByCountry('fr');

  7. #7
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    Citation Envoyé par SPKlls Voir le message
    L'idée ça pourrait d'être une couche d'abstraction qui permettrait d'agir sur l'objet select directement, et de lui apliquer un tri par exemple.

    En terme d'utilisation, de souplesse ça me parait plus interessant que d'ajouter un param dans chacune des méthodes qui permettrait de faire le tri.
    Inutile d'ajouter une couche d'abstraction, tout peut se faire au niveau de la classe Modèle. Tu peux avoir une méthode privée dans ta classe modèle qui construit un « squelette » de requête et renvoie un objet Select, et des méthodes publiques comme getByBook() qui se contente d'appeler la méthode privée, d'ajouter les clauses Where, d'exécuter la requête et de renvoyer un tableau de résultat.

    Quand au paramètre de tri, un paramètre par défaut sur chaque méthode publique fera l'affaire.

    Les couches d'abstraction sont déjà nombreuses dans ZF, l'ajout d'une nouvelle couche doit faire l'objet d'une analyse approfondie et le gain doit être supérieur aux inconvénients (baisse des performances, complexité du code...)
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 132
    Points : 99
    Points
    99
    Par défaut
    Merci pour ta réponse.

    Aurais tu quelques exemples de ce type de méthode de 'construction de squelettes' ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/08/2012, 21h37
  2. Réponses: 5
    Dernier message: 08/06/2009, 23h21
  3. Réponses: 1
    Dernier message: 18/02/2009, 17h40
  4. Bonnes pratiques sur les versions de Java et JDK
    Par JPDMJC dans le forum Général Java
    Réponses: 4
    Dernier message: 20/12/2007, 14h52

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