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 :

[POO/MVC]des classes sans propriétés


Sujet :

Langage PHP

  1. #1
    Membre expert

    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    octobre 2006
    Messages
    8 274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 8 274
    Points : 3 896
    Points
    3 896
    Billets dans le blog
    1
    Par défaut [POO/MVC]des classes sans propriétés
    Bonjour,

    développant une application avec le pattern MVC, je me pose des questions sur la conception sur laquelle je suis parti : parmi les différentes classes, seules celles qui appartiennent au modèle possèdent des propriétés, mais jamais celles qui sont des contrôleurs ou des vues. Selon vous, est-ce un bon choix de conception ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  2. #2
    Membre expert

    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    octobre 2006
    Messages
    8 274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 8 274
    Points : 3 896
    Points
    3 896
    Billets dans le blog
    1
    Par défaut
    Pour aider à m'apporter votre point de vue, il me semble utile de donner mon raisonnement.

    Tout d'abord, même si ça paraît évident, je ne l'avais pas dit : je code en POO.

    Sinon, mon raisonnement vient du rôle des 3 composantes du pattern MVC :

    contrôleur : rôle d'arbitre ; les contrôleurs ont pour responsabilité de traiter les demandes utilisateur, et font appel pour cela aux composantes du modèle et de la vue.

    Modèle : gestion des données ; les classes du modèle ont pour responsabilité l'accès en lecture/écriture aux données et la manipulation de ces données.

    Vue : affichage.

    Au vue de cette répartition des responsabilités, il me semble logique que seules les classes du modèle possèdent des propriétés alors que les classes contrôleur ou vue ne possèdent que des méthodes.

    Cette réflexion vous paraît-elle correcte ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    avril 2007
    Messages
    8 627
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2007
    Messages : 8 627
    Points : 16 359
    Points
    16 359
    Par défaut
    En général, les modèles sont des POPO (Plain Old Php Object), autrement dit, essentiellement composés d'attributs et d'accesseurs, plus le constructeur et éventuellement quelques méthodes utilitaires (par exemple, une méthode getAge() dans une classe Personne, qui calcule l'âge à partir de la propriété dateNaissance et de la date du jour)

    Personnellement, j'ai aussi des classes de type Service, qui servent à manipuler les modèles. Par exemple, PersonneService va contenir une méthode creerPersonne qui prend une Personne en paramètre et l'enregistre en base. Ça permet d'alléger les contrôleurs, de centraliser le code non lié aux vues et mutualiser du code dont tu peux avoir besoin dans plusieurs controlleurs.
    Une classe Service peut éventuellement avoir une propriété pour stocker la connexion à la base ou quelque du genre.
    Une classe Utilitaire (par exemple, un parseur) peut avoir des propriétés ou non, en fonction du besoin


    Les contrôleurs traitent les informations reçues (ex: formulaire), appellent les services et renvoient les informations pour l'affichage des vues. Je ne vois pas bien ce qu'on pourrait stocker dans une propriété
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre expert

    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    octobre 2006
    Messages
    8 274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 8 274
    Points : 3 896
    Points
    3 896
    Billets dans le blog
    1
    Par défaut
    Merci pour ta réponse Celira. Je ne comprends la distinction que tu fais entre des classes Service et des classes Utilitaire.
    des classes de type Service, qui servent à manipuler les modèles
    Une classe Utilitaire (par exemple, un parseur)
    Un parseur, ça manipule aussi des données, non ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Architecte Web / Android
    Inscrit en
    août 2003
    Messages
    6 212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte Web / Android
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 6 212
    Points : 17 784
    Points
    17 784
    Par défaut
    Tu te pose trop de question.

    La présence ou non de propriété dans un classe n'est pas un choix de conception c'est inhérent au besoin du code.
    Si tu n'as pas de données liées à l'instance de la classe à stocker , il n'y a pas de raison d'avoir de propriétés.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] Héritage des classes
    Par mic79 dans le forum Langage
    Réponses: 27
    Dernier message: 09/03/2007, 21h02
  2. [POO] Organisation des classes PHP
    Par AsQuel dans le forum Langage
    Réponses: 6
    Dernier message: 16/02/2007, 10h09
  3. [POO] conception des classes
    Par poukill dans le forum C++
    Réponses: 229
    Dernier message: 19/07/2006, 09h28
  4. [POO] faire des classes en php
    Par gromit83 dans le forum Langage
    Réponses: 2
    Dernier message: 13/04/2006, 17h10
  5. Distribuer des classes sans le .cpp
    Par Patrick Seuret dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/04/2006, 10h22

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