lordv Posté(e) le 9 septembre 2009 Partager Posté(e) le 9 septembre 2009 Salut ! j'ai un petit probleme en php je voudrais faire transite les valeurs de plusieurs variables de la class2 a la class1 sans faire de return puisque dans cette même fonction je peux envoyé plusieur valeur : exemple class maclas1 { var $lesvariables = array(); function main() { $nonclass = "class2"; $dynamicobject = new $nomclass; $dynamicobject->mafonction(); } } je voudrais que ""$dynamicobject->mafonction();"" puisse ajoute des valeurs a $lesvariables sans utilise de $_SESSION ni de return puisque quil peux mettre plusieurs enregistrement dessus a plusieurs reprises; j'ai essaye plusieurs choses mais j'ai tjr pas trouve une maniere propre sans que cela soit le boulot de la class2 de savoir ou vont etre stocke les valeur ni comment merci pour votre aide ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shtong Posté(e) le 9 septembre 2009 Partager Posté(e) le 9 septembre 2009 Tu pourrais renvoyer un tableau (éventuellement associatif) contenant toutes tes valeurs ? edit : Par exemple : class maclas1 { var $lesvariables = array(); function main() { $nonclass = "class2"; $dynamicobject = new $nomclass; $nouvellesValeurs = $dynamicobject->mafonction(); // Retourne les valeurs à ajouter au tableau $this->lesvariables = array_merge($this->lesvariables, $nouvellesValeurs); // Ajoute le contenu de $nouvellesValeurs dans $this->lesvariables } } Sinon pourquoi ne pas tout simplement passer le tableau en paramètre de mafonction ? Etant donné qu'il sera passé par référence, toutes les modifications que tu y feras dans mafonction seront répercutées dans maclasse1 ! (tant que tu ne réassignes pas la variable). Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 9 septembre 2009 Partager Posté(e) le 9 septembre 2009 Salut ! Y a pas un système d'héritage en PHP ?? Lien vers le commentaire Partager sur d’autres sites More sharing options...
lordv Posté(e) le 9 septembre 2009 Auteur Partager Posté(e) le 9 septembre 2009 Tu pourrais renvoyer un tableau (éventuellement associatif) contenant toutes tes valeurs ?edit : Par exemple : class maclas1 { var $lesvariables = array(); function main() { $nonclass = "class2"; $dynamicobject = new $nomclass; $nouvellesValeurs = $dynamicobject->mafonction(); // Retourne les valeurs à ajouter au tableau $this->lesvariables = array_merge($this->lesvariables, $nouvellesValeurs); // Ajoute le contenu de $nouvellesValeurs dans $this->lesvariables } } Sinon pourquoi ne pas tout simplement passer le tableau en paramètre de mafonction ? Etant donné qu'il sera passé par référence, toutes les modifications que tu y feras dans mafonction seront répercutées dans maclasse1 ! (tant que tu ne réassignes pas la variable). seulement lappele de la méthode est aussi dynamic je vais chercher sur la doc voir si call_user_func peut aussi prendre les paramètres mon but est de respecter le model mvc vu que j'appèle la class métier de cette façon j'aurai voulu récupérer les valeurs de ces variables dans ma vue en utilisant $nom_de_association au lieu de $lesvariable['nomassiociation'] je voulais utiliser une boucle pour déclarer ces variable de façon dynamique mais il faudra que je vérifie si ya la notion de porte des variables en php ce sera plutôt des optimisations a faire pour facilite l'évolution de mon code si quelqun troube un moyen plus propre je dirai pas non Lien vers le commentaire Partager sur d’autres sites More sharing options...
lordv Posté(e) le 9 septembre 2009 Auteur Partager Posté(e) le 9 septembre 2009 Salut !Y a pas un système d'héritage en PHP ?? si mais 'd'après ce que j'ai remarque l'instance class1 qui appèle la fille class2 est différente de celle dont on na accès a l'intérieur de class2 ou une autre instance de class1 est créer au moment de la création de class2 bref c'est comme dans les autres langages quoi Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shtong Posté(e) le 10 septembre 2009 Partager Posté(e) le 10 septembre 2009 Les frameworks MVC que je connais utilisent pour la plupart des tableaux pour la partie métier... coté vue si tu veux seulement transformer tes éléments de tableaux en variables, tu peux utiliser la syntaxe "double dollar" : $nom = "mavar"; $$nom = 1; // Crée une variable dont le nom est contenu dans la variable $nom echo $mavar; // Affiche 1 Pour le coté métier, l'héritage n'est pas une si mauvaise idée puisque tu auras une classe de base pour toutes tes classes métier, qui contient ce fameux tableau : les classes métier pourront donc y accéder et l'orchestrateur (ta classe1) saura toujours où le trouver. Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 10 septembre 2009 Partager Posté(e) le 10 septembre 2009 Moi j'ai du mal à voir comment on peut faire une couche MVC en instanciant dynamiquement la classe M par le contrôleur. Sachant qu'un contrôleur travaille avec des classes métiers spécifiques, il n'y a pas possibilité de les instancier au hasard. Lien vers le commentaire Partager sur d’autres sites More sharing options...
lordv Posté(e) le 11 septembre 2009 Auteur Partager Posté(e) le 11 septembre 2009 Moi j'ai du mal à voir comment on peut faire une couche MVC en instanciant dynamiquement la classe M par le contrôleur.Sachant qu'un contrôleur travaille avec des classes métiers spécifiques, il n'y a pas possibilité de les instancier au hasard. dison que mon algo se base sur un routeur et une table de routage pour des url speficiques a debut de la requete le routeur verifie si lurl est dans la table si oui il envoi lenom de la classe et la nethode au controlleur principale ce dernier verifie que le visiteur a bien le droit d'acces a cette class/methode et si oui instancie la classe et appele la methode si au niveau du routeur l'url ne correspont aucune enregistrement au niveau de la table on lui balance une page 404 . dailleur c'est labas que j'ai un probleme j'utilise une table de ce type '/articles' => array('controller'=>'article','act'=>'index') mais je suis bloque a ce niveau ou j'arrive pas a faire ceci '/articles/*' => array('controller'=>'article','act'=>'section-article') vu que lutilisateur peut juste lire les articles d'une section finalement ne trouvant pas solution n'etant pas pro des regex je regarde juste le premier parametre apres le nom de domaine .si quelqun peux aussi m'aider a l'ameliorer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.