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] réaliser une 'interface' avec PHP4


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Points : 626
    Points
    626
    Par défaut [POO] réaliser une 'interface' avec PHP4
    Bonjour,

    Je souhaite faire plusieurs classes implémentant tous la meme interface. Or le principe d'interface n'est valable qu'a partir de PHP 5...
    J'aimerais savoir comment on peut faire pour ecrire une equivalence d'interface en PHP 4.

    D'avance merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Points : 626
    Points
    626
    Par défaut
    Le seul moyen que j'ai trouvé est de passer par un heritage
    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
    class MyInterface {
        function myFunction($myparam) { /* Nothing. */}
    }
     
    class MyFirstClass extends MyInterface {
        function myFunction($myparam) {
            // new implementation
        }
    }
     
    class MySecondClass extends MyInterface {
        function myFunction($myparam) {
            // new implementation
        }
    }
    Mais bon, c'est loin d'etre ideal... Existe il une autre solution ?

  3. #3
    Candidat au Club
    Inscrit en
    Décembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par TabrisLeFol Voir le message
    Le seul moyen que j'ai trouvé est de passer par un heritage
    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
    class MyInterface {
        function myFunction($myparam) { /* Nothing. */}
    }
     
    class MyFirstClass extends MyInterface {
        function myFunction($myparam) {
            // new implementation
        }
    }
     
    class MySecondClass extends MyInterface {
        function myFunction($myparam) {
            // new implementation
        }
    }
    Mais bon, c'est loin d'etre ideal... Existe il une autre solution ?

    J'utilise moi aussi php4 et j'ai rencontré ce "problème", ta solution n'est pas loin d'être idéal car ce que tu vient de coder est effectivement une interface : avant tout la définition d'une interface c'est "une classe dont toutes les méthodes sont abstraites", ta MyInterface respecte bien cette définition donc c'est 100% correct, tu vois bien que la seule diff n'est que de niveau syntaxique (class au lieu de interface, mais en tout cas c'est pas faux : une interface est une class!) je dirais même formel!

  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 : 50
    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
    Bonjour,

    Bien que le problème soit résolu, et de belle manière, je souhaite revenir sur la problématique de l'interface en php4 et sa justification.
    Comme il n'est même pas possible de typer les paramètres de fonctions comme en php5 (pour utiliser le pattern Strategy par exemple), quel est l'intérêt de vouloir utiliser les interfaces ?
    Je n'en vois qu'une utilité limitée : ne pas oublier de coder des méthodes. Mais à part ça...

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

Discussions similaires

  1. réaliser une interface de matrice avec netbeans
    Par Hanane22 dans le forum NetBeans Platform
    Réponses: 1
    Dernier message: 03/04/2014, 14h00
  2. Réponses: 1
    Dernier message: 10/10/2007, 16h18
  3. Réponses: 2
    Dernier message: 09/08/2006, 14h02
  4. Réponses: 5
    Dernier message: 04/07/2006, 10h55
  5. Piloter une interface avec des relais
    Par Yepazix dans le forum API, COM et SDKs
    Réponses: 13
    Dernier message: 26/10/2004, 19h46

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