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 :

Comment savoir quelle classe en a instancié une autre / appelé la fonction d'une autre ?


Sujet :

Langage PHP

  1. #1
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut Comment savoir quelle classe en a instancié une autre / appelé la fonction d'une autre ?
    Bonjour,

    Soit une classe A qui, dans une de ses méthodes, en instancie une autre et utilise une de ses fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class A
    {
    	public function fA()
    	{
    		$b = new B();
    		$b->setParamDeB('valeur');
    		$b->doSomething(); 
    	}
    }
    Comment B peut-il savoir que c'est A qui l'a instancié ?

    L'idée derrière cette question est de vérifier la pertinence de B.doSomething et d'éventuellement renvoyer une erreur.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    debug_backtrace()

    Sinon, pourquoi ne pas utiliser un interface comme paramètre de la fonction doSomething, voire setParamDeB? Tu auras une erreur quand l'instance passé en paramètre n'implémente pas l'interface.

    A+.

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Merci pour le lien vers la fonction debug_backtrace()... qui m'en a donné un autre vers debug_print_backtrace() qui semble davantage correspondre à ce que je cherche.

    On va dire que c'est même si je n'en ai peut-être pas besoin dans l'immédiat.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    les fonctions "debug..." sont plutôt des outils pour trouver un problème dans le code donc elle ne sont peut-être pas optimisées pour un fonctionnement en production.
    pouvez vous nous montrer un exemple concret de que vous souhaitez tester ?

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    pouvez vous nous montrer un exemple concret de que vous souhaitez tester ?
    Non. Avec une réflexion plus approfondie sur ce qui m'avait amené à poser la question, je me suis dit que ce n'était finalement pas pertinent.
    Donc, comme dit dans mon précédent message, je n'en ai pour le moment plus besoin mais je range l'info dans un neurone parce que ça pourrait être utile plus tard.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

Discussions similaires

  1. [Free Pascal] Comment savoir quelle ligne du programme est la cause d'une erreur à l'exécution
    Par NOVICE76 dans le forum Free Pascal
    Réponses: 5
    Dernier message: 04/09/2014, 20h46
  2. Réponses: 3
    Dernier message: 08/02/2013, 13h32
  3. comment savoir à quelle liste appartient une valeur?
    Par tsly_mdk dans le forum Général Python
    Réponses: 7
    Dernier message: 03/12/2009, 12h33
  4. [Introspection] Savoir quelle classe a appelé une méthode
    Par muad'dib dans le forum Général Java
    Réponses: 2
    Dernier message: 26/11/2008, 16h34
  5. (Débutant) Comment savoir quelle classe éxiste ?
    Par gmailex dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/10/2007, 10h53

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