Appeler une methode de la classe appelante dans une methode d'une classe appelée
roland_d_alsace
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
roland_d_alsace Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
roland_d_alsace Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite que la méthode $clMail->AjouteUsetListe puisse appeler la méthode InfosListesClub() défini dans la classe appelante Gmodel, et dont le nom est passé en paramètres.
Merci d'avance pour vos retours d'idées.
Je souhaite que la méthode $clMail->AjouteUsetListe puisse appeler la méthode InfosListesClub() défini dans la classe appelante Gmodel, et dont le nom est passé en paramètres.
class Gmodel
{
....
public function genereListeMailClubs(){
....
$clMail = new GmailingListsClass();
$clMail->AjouteUserListe($params, 'InfosListesClub');
...
}
public function InfosListesClub(){
....}
}
Merci d'avance pour vos retours d'idées.
A voir également:
- Appeler une methode de la classe appelante dans une methode d'une classe appelée
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Appeler en privé - Guide
- En préparant son diaporama, tom a pris quelques notes qui l'aideront lors de sa présentation. quand il présentera l'âne, il a prévu de raconter une anecdote sur cet animal. comment s'appelle l'âne de son histoire ? - Forum Windows
- Je peux appeler mais pas recevoir d'appel sur mon portable - Forum Réseaux sociaux
- Dans le code de la page, modifiez la couleur de fond de la classe .pix. un code de 4 chiffres doit apparaître dans la grille. lequel ? ✓ - Forum Excel
2 réponses
Bonjour,
Déjà, Pense à préciser le langage dans les balises de code lorsque tu postes du code sur le forum
Explications ( à lire ENTIEREMENT !! ) disponibles ici
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite, quel est le souci ?
As tu un message d'erreur ? ( d'ailleurs, as tu activé l'affichage des erreurs php sur ton site ? )
Qu'as tu essayé ?
Pourquoi le fais tu comme ça ?
Ne peux tu pas envoyer directement les infos voulues en paramètres plutôt que de mettre le nom d'une méthode ?
Sachant que tu peux très bien faire un truc du genre
bien entendu, il aura fallu instancier ta class ( ici $object) pour pouvoir y accéder...
Déjà, Pense à préciser le langage dans les balises de code lorsque tu postes du code sur le forum
Explications ( à lire ENTIEREMENT !! ) disponibles ici
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite, quel est le souci ?
As tu un message d'erreur ? ( d'ailleurs, as tu activé l'affichage des erreurs php sur ton site ? )
Qu'as tu essayé ?
Pourquoi le fais tu comme ça ?
Ne peux tu pas envoyer directement les infos voulues en paramètres plutôt que de mettre le nom d'une méthode ?
Sachant que tu peux très bien faire un truc du genre
$object->$function_name(); // $function_name ici contiendra 'InfosListesClub'
bien entendu, il aura fallu instancier ta class ( ici $object) pour pouvoir y accéder...
Merci pour ta réponse et tes informations.
Le soucis est que je ne sais pas accéder à une méthode de le classe appelante dans la classe appelés (comment retrouver l'instance de classe appelante ?).
Pour l'instant je place mes méthodes (InfosListesClub) dans la classe appelée, mais ce n'est pas la solution, car c'est une classe générique en librairy et ces méthodes non rien à faire ici, c'est même un traitement facultatif qui dépend du contexte de l'appel.
Pourquoi je fais ainsi, car la méthode $clMail->AjouteUserListe doit préparer au préalable un objet que je passe dans cette fonction (InfosListesClub) dans mon exemple qui complète l'objet selon le contexte, et il y a plusieurs fonctions differentes selon le contexte et traitement.
Je vais essayer de passer en plus l’instance de la classe en paramètre ($this), un truc du genre :
pour ensuite dans ma méthode AjouteUserListe de l'instance $clMail pouvoir l'appeler via l'instance passée en paramètre
Peut-on faire + simple, et tout passer en un seul paramètre (instance de la classe appelante et le nom de la méthode à utiliser) ?
Merci.
Le soucis est que je ne sais pas accéder à une méthode de le classe appelante dans la classe appelés (comment retrouver l'instance de classe appelante ?).
Pour l'instant je place mes méthodes (InfosListesClub) dans la classe appelée, mais ce n'est pas la solution, car c'est une classe générique en librairy et ces méthodes non rien à faire ici, c'est même un traitement facultatif qui dépend du contexte de l'appel.
Pourquoi je fais ainsi, car la méthode $clMail->AjouteUserListe doit préparer au préalable un objet que je passe dans cette fonction (InfosListesClub) dans mon exemple qui complète l'objet selon le contexte, et il y a plusieurs fonctions differentes selon le contexte et traitement.
Je vais essayer de passer en plus l’instance de la classe en paramètre ($this), un truc du genre :
class Gmodel { .... public function genereListeMailClubs(){ .... $clMail = new GmailingListsClass(); $clMail->AjouteUserListe($Lu, $nom_liste, $params, $this, 'InfosListesClub'); ... } public function InfosListesClub(&$liste, $Lu, $clParam){ ....} }
pour ensuite dans ma méthode AjouteUserListe de l'instance $clMail pouvoir l'appeler via l'instance passée en paramètre
public function AjouteUserListe($Lu, $nom_liste, $clParam,$clAppel, $fctname_infos_liste){ ... // prétraitement if(method_exists($clAppel,$fctname_infos_liste)){ $clAppel->{$fctname_infos_liste}($liste, $Lu, $clParam); // appel de la méthode voulue de la classe appelante } // post traitement .... }
Peut-on faire + simple, et tout passer en un seul paramètre (instance de la classe appelante et le nom de la méthode à utiliser) ?
Merci.