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] Surcharge de méthode __call


Sujet :

Langage PHP

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut [POO] Surcharge de méthode __call
    Bonjours,

    je développe actuellement ma nouvelle architecture de class, pour un framwork.
    Je me demandais tout simplement s'il pouvait y avoir des contrindication de l'utilisation massive de l'utilisation des surcharges, et principalement la Surcharge de méthode __call.

    Précisément dans cet exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?php
    Class ma_class_etendu{
     
      static  function affichage_test($m,$a)
    {
    print "Méthode $m appelée :\n";
        var_dump($a);
     
    }
    }
     
    Class ma_class extends ma_class_etendu{
     
         private function __call($m, $a)
      {
        ma_class_etendu::affichage_test($m,$a);
        }
     
    }
     
    $essai= new ma_class;
    $essai->affichage_test_1('toto');
    $essai->affichage_test_2('tata');
    $essai->affichage_test_3('zaza');
    $essai->affichage_test_4('zozo');
    $essai->affichage_test_5('dede');
    $essai->affichage_test_6('dada');
     
    ?>
    Conception / Dev

  2. #2
    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,

    La contre-indication la plus évidente est d'obtenir un code difficile à déchiffrer et donc à maintenir et à faire évoluer, et des performances pas top.

    Ta méthode statique affichage_test() ne permet pas vraiment d'estimer l'intérêt qu'apporte la surcharge de méthode avec __call()... Pourrais-tu être plus précis sur son contenu ?
    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

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    [merci rubricage ]

    Merci de ta réponse, je vais essayer d'apporter des précisions sur le fondement de ma question.

    Pour l'instant ce n'est qu'une réflexion de ma part, cependant la fonction static afficher_test, devrait a terme par exemple pouvoir modéliser les relations entre les attributs d'une bdd, et les codes des controller, et view.

    En fait il me semble intéressant, et justement très lisible, de pouvoir utiliser une syntaxe tel que $essai->contoller('acceuil','mon titre','ma page'); et de ce fait avoir directement accès aux deux variables générées par __call, soient,
    $m='controller' et
    $a=array('acceuil','mon titre','ma page');

    En fait, je me demande surtout si c'est une utilisation normal de __call, et auquel cas, quelle devrait être son utilisation normal
    Conception / Dev

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    le plus proche parent de ce que j'ai trouvé sur le forum

    http://www.developpez.net/forums/sho...d.php?t=578321

    dans mon idée

    __call, doit il strictement être utilisé dans un mode d'exception ?

    bon, je n'ai pas les liens du forums qui en parle, mais ce que j'en ai retenu :
    utilise __call, pourvu, que cela t'amène à avoir une meilleur compréhension de ton code.

    Et moi, j'ai du mal à faire de la création dynamique de fonction, va savoir pourquoi ?
    Toute fois, si je me pose la question, c'est que j'y porte un certain intérêt, et que cet intérêt est forcement collectif.

    Dans ma question , il reste donc à définir, ce qui est naturel, et ce qui ne l'ai pas, sur l'utilisation de la function __call, de façon massive...
    Conception / Dev

Discussions similaires

  1. POO : surcharge de méthode statique
    Par Kropernic dans le forum VB.NET
    Réponses: 7
    Dernier message: 28/03/2014, 09h49
  2. [Doctrine] Surcharger une méthode gérée par __call()
    Par Chekov dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 12/09/2009, 23h12
  3. Réponses: 5
    Dernier message: 26/10/2008, 12h28
  4. [POO] Héritage et surcharge de méthodes
    Par defkid dans le forum Langage
    Réponses: 4
    Dernier message: 26/02/2007, 14h51
  5. [POO] Surcharge de méthode
    Par ouioui2000 dans le forum Langage
    Réponses: 4
    Dernier message: 09/03/2006, 15h25

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