Aller au contenu

valeur d'une classe appelée a une class appelante


lordv

Messages recommandés

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

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

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

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

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

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 . :eeek2:

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 :craint:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...