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 :

A quoi servent les interfaces ? [PHP 5.6]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    autodidacte
    Inscrit en
    Mai 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2014
    Messages : 9
    Par défaut A quoi servent les interfaces ?
    Bonjour,

    En suivant le manuel et les tutos, j'ai appliqué à la lettre une interface et une class implements interface pour gérer les sessionHandler. Tout fonctionne bien mais je ne comprends pas l'utilité de l'interface puisqu'il faut instancier la class.
    Ma question est simple : à quoi servent les interfaces ?
    J'en ai déduit qu'elles ne servaient qu'à avoir un listing des méthodes développées dans les class les implémentant mais ont-elles une influence sur le comportement du code ou la fluidité de traitement ?

    Je précise que je suis récent en PHP et loin d'en connaitre toutes les subtilités.
    Merci

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Une interface te permet de définir un contrat que toutes les class qui l'implémente devront respecter.
    Ca permet d'imposer au classes de devoir implémenter des méthodes.

    Par exemple imaginons la fonctions suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function draw(Drawable objet)
    {
        $objet->render();
    }
    La fonction draw() prend en paramètre un objet de type Drawable. Si je déclare une interface Drawable cela me permet d'être certains que tous les objets de type Drawable (qui implémente cette interface) disposerons de la methode render() sans pour autant imposer son implémentation.

    Quand tu es seul à travailler sur un projet les interface ont peu d'intérêt puisque elle peuvent être remplacer par de la rigueur. En revanche quand tu fournit une librairie ou qu'on travail à plusieurs , on doit imposer certains comportement au code produits par d'autres. L'interface est une solution.

    Note que ce n'est pas un mecanisme propre à PHP mais plutôt à la programmation objet en générale
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre habitué
    Homme Profil pro
    autodidacte
    Inscrit en
    Mai 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2014
    Messages : 9
    Par défaut
    Merci pour l'éclaircissement.
    En effet je travaille seul et pour un groupe j'en comprends l'utilité.
    Du coup je vais m'astreindre à cette rigueur pour le cas où je participerai à un développement en groupe.

    En aparté, je précise qu'avant de faire ce post, j'ai effectué de multiple recherches infructueuses. Après avoir validé le post, des liens vers des sujets similaires ce sont affichés. Très instructifs également pour en comprendre le fonctionnement.
    http://www.developpez.net/forums/d60...nterfaces-php/

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    En complément de ce qu'a écrit grunk, les interfaces te permettent aussi de découpler ton code et de rendre chaque classe (voir chaque méthode) indépendante: tes classes ne dépendent plus d'une autre classe concrète mais juste d'une interface, ce qui te permet de pouvoir modifier facilement leur comportement sans modifier le code (un principe connu sous le nom d'Open/Close principle, le O de SOLID).

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

Discussions similaires

  1. [POO] A quoi servent les interfaces en php ?
    Par eilijah dans le forum Langage
    Réponses: 6
    Dernier message: 07/11/2013, 13h16
  2. à quoi servent les interfaces ?
    Par pcdj dans le forum Framework .NET
    Réponses: 14
    Dernier message: 03/02/2007, 09h25
  3. A quoi servent les index dans une BDD ?
    Par Melvine dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 25/10/2005, 13h14
  4. [CR 10] A quoi servent les Templates Fields ?
    Par caviar dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 10/11/2004, 11h52
  5. [C#] A quoi servent les interfaces???
    Par sof_nns dans le forum Windows Forms
    Réponses: 8
    Dernier message: 28/10/2004, 21h51

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