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

Symfony PHP Discussion :

étendre une Classe sans utiliser l’Héritage [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut étendre une Classe sans utiliser l’Héritage
    Bonjour,

    Dans le chapitre suivant : http://symfony.com/doc/2.8/cookbook/...extension.html
    ça parle "Comment étendre une Classe sans utiliser l’Héritage" (voir modifier dans le chapitre suivant)



    Le truc c'est que je ne vois pas l’intérêt de cette pratique, pouvez vous me donner des cas concrets ?

  2. #2
    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
    C'est une version plus complexe de la méthode magique __call, mais franchement je ne vois pas l'intérêt non plus, du moins en tant que simple utilisateur (par opposition à développeur de librairie ou framework).
    __call en soi apporte déjà une complexité et j'évite comme la peste.

    Il doit y avoir une raison interne pour utiliser cette technique, mais je suis curieux aussi. Pour moi c'est signe d'une architecture mal pensée, mais ce n'est que mon opinion de petit développeur!

  3. #3
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Je n'en ai jamais eu besoin, mais je reconnais plus ou moins ce qui est utilisé lorsqu'on fait appel à des méthodes d'un Repository depuis un EntityManager (les méthodes findBy etc.).

    Je ne suis pas fan non plus de ce genre de magie mais je présume que cela permet d'accéder à des méthodes de plusieurs classes distinctes qui ne sont pas supposées être héritées entre elles.
    Un EntityManager n'est pas supposé hériter d'un Repository car en soi ça n'a pas de sens : ce sont deux objets distincts, mais pour autant on peut vouloir prendre certains raccourcis et accéder aux méthodes de ses repositories.

    Dans un cas ou plusieurs classes séparées peuvent jouer le rôle de Repository sans pour autant hériter les unes des autres parce qu'elles ne sont pas sensées dépendre l'une de l'autre, on pourra alors profiter des méthodes de plusieurs classes dans une seule.

    Je pense que c'est un raccourci dont il ne faut pas abuser cependant.

  4. #4
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    merci pour vos explications !

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

Discussions similaires

  1. [IDE] Utiliser un composant dans une classe sans IHM
    Par Pascale38 dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/08/2011, 13h16
  2. Réponses: 4
    Dernier message: 24/07/2009, 14h56
  3. Réponses: 1
    Dernier message: 30/04/2008, 19h35
  4. Réponses: 9
    Dernier message: 30/11/2005, 18h18
  5. Réponses: 11
    Dernier message: 16/10/2005, 20h21

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