8
votes

CLASSES PHP: Accédez à l'instance d'appel de la méthode appelée

Désolé pour ce sujet bizarre mais je ne sais pas comment l'exprimer d'une autre manière.

J'essaie d'accéder à une méthode d'une classe d'appel. Comme dans cet exemple: xxx

Les deux classes ne sont pas liées par héritage et je ne veux pas définir la fonction sur statique.

y a-t-il façon d'atteindre cela?

Merci pour votre aide!


0 commentaires

5 Réponses :


5
votes

Vous pouvez transmettre une référence au premier objet comme celui-ci: xxx


0 commentaires

1
votes

Vous avez quelques options. Vous pouvez utiliser l'agrégation comme si xxx

ou juste un setter droit xxx


0 commentaires

0
votes

Selon votre cas d'utilisation, vous souhaiterez peut-être transmettre l'instance à la fonction uniquement: xxx

si normalClass :: SOMEMETHOD () peut être appelé par multiples, distincts $ objet s, c'est peut-être le meilleur choix (au lieu de fournir l'objet $ à l'instance NormalClass totale).

mais peu importe De cela, vous pouvez envisager de créer une interface à utiliser pour ASIME DE TYPE : xxx


0 commentaires

3
votes

Vous pouvez utiliser debug_backtrace () pour cela. C'est un peu si, mais à des fins de débogage, il est utile. xxx

}


2 commentaires

Ne recommanderait pas d'utiliser la fonction de débogage dans le code de production


C'est une vraie belle fonction, une telle honte que la langue ne l'a pas par défaut.



0
votes

woah j'ai eu le même problème que vous, mais au lieu d'aller avec le simple passage de la référence à l'objet, je suis allé avec un gestionnaire d'événements, essentiellement, lorsque quelque chose se passerait dans la classe normale, il déclencherait un événement qui A été écouté par une classe et que ladite classe (l'auditeur) appellerait la superque à exécuter cette fonctionnalité et, si nécessaire, transmettez-les de nouveaux arguments.

Quoi qu'il en soit, que vous le transmettez comme un paramètre à votre objet ou si vous accédez à une approche basée sur des événements, les deux solutions fonctionnent. Choisissez celui que vous préférez.

Pour plus d'informations sur les événements, Sympony l'explique assez bien. http://symfony.com/doc/current/composants/event_dispatcher/introduction.html


0 commentaires