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 :

Bonne pratique pour une table de décision


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 Bonne pratique pour une table de décision
    Bonjour

    Je me trouve actuellement devant une petite problématique de conception qui est je pense assez courante. Bien que je puisse facilement bricoler quelquechose, j'aimerai avoir des avis éclairés sur la question, histoire de pas avoir à reprendre ça dans un mois ou deux

    Le portail que je développe a un point d'entrée unique. Les liens ou les formulaires passent donc en paramètre un identifiant d'action, plus d'éventuels informations complémentaires.
    Suivant du mieux possible le modèle MVC, j'ai donc un ActionsControler qui dispatche ces requetes en fonction de l'identifiant d'action, que je définis comme étant le hachage md5 de deux trois mots explicites comme "ConfigurationList" ou "ServerDetailView".

    Techiquement, j'ai commencé par un gros if / elseif / ... Je trouve cela un peu moche car très répétitif, surtout que mes actions sont assez standard (lister, voir le détail, éditer, ... des environnements / serveurs / configurations / ...).
    Du coup je me dis qu'il doit y avoir moyen de faire ça intelligemment, comme une table associative aActionMap[cible][action] = md5, ou un truc dans ce gout qui inclue les rangs utilisateurs (qui a accès à quoi) voir la disponibilité (en travaux / pas encore codé / ...)

    Voilà où j'en suis. Merci d'avance pour tout conseil, toutes pistes de recherche voir le moindre exemple !

  2. #2
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    Par défaut
    Du coup je me dis qu'il doit y avoir moyen de faire ça intelligemment,
    Prendre un vrai framework tel que le Zend Framework ou symfony me semble la meilleur solution vu que le MVC est d'office d'application.

  3. #3
    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
    Je sais. Mais ça n'a pas été commencé comme ça, et maintenant je dois faire avec ce qu'il y a, car l'horloge tourne.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2008
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 43
    Points : 38
    Points
    38
    Par défaut
    Et pourquoi pas un switch case ? Ca sera déjà plus propre qu'un if/then/else, non ?

    Edit. Autre idée qui me vient à l'esprit... avoir une classe par cible, avec des méthodes nommées selon les actions possible par cible... ainsi tu pourrais appeler tes actions dynamiquement selon les variables get, et gérer les erreurs si la classe/méthode n'existe pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $cible = $_GET['cible'];
    $action = $_GET['action'];
     
    try {
        $cObj = new $cible();
        $cObj->$action($args);
    }
    catch (Exception $e)
    {
        // ....
    }
    Qu'en penses-tu ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/01/2015, 11h22
  2. Bonne pratique pour une ListView
    Par p4ndore dans le forum Composants graphiques
    Réponses: 8
    Dernier message: 13/02/2012, 16h03
  3. Bonnes pratiques pour une vue partagée
    Par HaloKard dans le forum MVC
    Réponses: 3
    Dernier message: 13/11/2010, 13h23
  4. Réponses: 13
    Dernier message: 07/04/2010, 20h22

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